单文档视图区,如何嵌入(显示)另外一个基于对话框的应用程序窗口?

bitluo2008 2013-02-09 05:19:34
简单来说,就是以前有很多程序模块都是基于对话框(.EXE)的, 现在想通过单文档做个ribbon界面,通过菜单/工具栏调用不同模块.EXE,显示到视窗里面.请大侠给些建议(或实现方法或代码也行). 保证大大地给分给下载,呵呵.
...全文
291 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bsnry 2013-02-13
引用 3 楼 rxguoblp 的回复:
在你的单文档程序的菜单中添加View类响应函数,然后把基于对话框(.EXE)程序拷贝到你的单文档程序路径下,最后编写View类响应函数代码。 void CTestViewView::OnRecallPros() { // TODO: 在此添加命令处理程序代码 char filepath[256]; GetCurrentDirectory(256,filepath……
楼主这个需求 很是诡异, 说白了就是讲a.exe 嵌入到b.exe的窗口中。 通过createprocess可以获得a.exe进程句柄,然后通过枚举窗口的法子,获得窗口句柄, 然后movewindow到b.exe中, 思路简单,但是问题很多, 我做过一个将word嵌入到自己的窗口中。 具体可以参考我博客里的文章
  • 打赏
  • 举报
回复
rxguoblp 2013-02-12
在你的单文档程序的菜单中添加View类响应函数,然后把基于对话框(.EXE)程序拷贝到你的单文档程序路径下,最后编写View类响应函数代码。 void CTestViewView::OnRecallPros() { // TODO: 在此添加命令处理程序代码 char filepath[256]; GetCurrentDirectory(256,filepath); CString path = filepath; path += "\\TestDlg.exe";//被调用.exe程序的路径 STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); // Start the child process. if( !CreateProcess( NULL, // No module name (use command line). TEXT((LPSTR)(LPCTSTR)path), // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) { return; } }
  • 打赏
  • 举报
回复
副组长 2013-02-11
添加菜单项,给菜单项添加命令响应函数,在函数里面用CreateProcess()函数将原来的EXE启动就行。
  • 打赏
  • 举报
回复
hdg3707 2013-02-09
只能是取得别的EXE程序的窗口,然后把视图的指针传达室给别的XE程序作为父窗口,别的程序做为视图的子窗口
  • 打赏
  • 举报
回复
相关推荐
发帖
界面
加入

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2013-02-09 05:19
社区公告
暂无公告