如何让子进程的界面在父进程中显示

hktl 2009-11-19 10:09:13
如题,子进程和父进程都是我自己所编写。
我想子进程的界面在父进程中显示,子进程自身隐藏,就像是父进程的界面一样,
这样做的好处是子进程万一异常,父进程也不用重启。
不知各位高手有什么好的方法。欢迎大家讨论。

...全文
393 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hktl 2009-11-20
  • 打赏
  • 举报
回复
CHtmlView怎么用我知道,
怎么实时显示啊,说来听听,这才是最重要的.

田暗星 2009-11-20
  • 打赏
  • 举报
回复
2 进程 既然是你 自己编写 为了方便 共享内存吧
这样通信最方便
实时显示
田暗星 2009-11-20
  • 打赏
  • 举报
回复
参考一下文章

VC6中使用CHtmlView在对话框控制中显示HTML文件
http://www.vckbase.com/document/viewdoc/?id=566
hktl 2009-11-20
  • 打赏
  • 举报
回复
说明白些就是WaistCoat14所说的那样.
每个子进程有一个CHtmlView,父进程是一个框架,我要把子进程的CHtmlView在父进程中显示出来
hktl 2009-11-20
  • 打赏
  • 举报
回复
是子进程的界面在父进程中显示,子进程是一个VIEW.
田暗星 2009-11-20
  • 打赏
  • 举报
回复
进程的界面在父进程中显示 ??
是进度信息 还是图形 ?
mengde007 2009-11-20
  • 打赏
  • 举报
回复
窗口附加是可以实现的;类似与属性页那种;
如果用dll封装也可以呀;
hktl 2009-11-20
  • 打赏
  • 举报
回复
窗口附加?
这么简单吗,
我觉得应该是消息代理,父进程把消息都给子进程去处理,但是不知子进程是如何把界面显示在父进程上的,是在父进程的DC直接画吗?仔细想想过程好复杂.
wangk 2009-11-20
  • 打赏
  • 举报
回复
一般是窗口附加,你参考一些桌面嵌入程序的做法就可以了。
wfx_net 2009-11-20
  • 打赏
  • 举报
回复
父进程在WM_SIZE中发送客户区的坐标(屏幕坐标)和大小到子进程,然后子进程收到这个位置和大小时再调整自身的位置。
MoXiaoRab 2009-11-20
  • 打赏
  • 举报
回复
这只是一种勉强的方法,没有同进程内来得和谐
MoXiaoRab 2009-11-20
  • 打赏
  • 举报
回复
假设你一个进程A是父,另外一个进程B里面有个窗口2,想作为子窗口嵌入到A的窗口1中,你需要这么做

窗口2 BORDER设为NONE,Style设置为WS_CHILD

窗体2中
     CWnd* win = CWnd::FromHandle(hwnd);//反正得到自己窗口的指针,随你用什么方法
win->ModifyStyle( WS_CAPTION | WS_THICKFRAME, 0);
win->SetParent(this);//设置父亲为窗口1
CWnd* local = 用方法获得窗口1里面IDC_WIN控件的指针;
CRect rect;
local->GetClientRect(&rect);
CPoint pt = rect.TopLeft();
local->ClientToScreen(&pt);
ScreenToClient(&pt);
win->SetWindowPos(NULL, pt.x, pt.y, rect.Width(), rect.Height(), 0);


这样就把一个窗体放在另一个窗体中,并且大小与IDC_WIN控件大小相同,且占据其位置。
hktl 2009-11-19
  • 打赏
  • 举报
回复
我想知道是用什么方法,虽然现在的想法是有一些,但感觉都不是很好
WaistCoat14 2009-11-19
  • 打赏
  • 举报
回复
这个比较复杂,涉及到进程间通信问题。

IE8和chrome就采取了这个技术,一个页签是单独的一个程序。

具体你可以参考下chrome的源代码,不过代码相当的多,看着会有点吃力。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧