如何将一个MFC程序添加到另一中去?
我现在有两个独立的MFC程序,现在要把一个添加到另一中去,能行吗?或者就是在一个主界面上添加个按钮,然后调用另一个程序。请问这个应该怎么解决啊?
要求最后连个程序最好能在一起。。。
谢谢
[解决办法]
如果功能很复杂不想重新写,
那你就在一个程序里加一个触发事件,直接调用你另一个程序的EXE文件就行了只要知道可执行文件名就能搞定,方法如下:
一.触发一个外部可执行程序:
CString sPath= "F:\\项目进程\\vb考勤机 ";
::ShellExecute(NULL,NULL,_T( "Project1.exe "),NULL, sPath ,SW_SHOW );
二.用完后关闭:
HWND hWnd = ::FindWindow(NULL, "Project1.exe ");//找到可执行程序的句柄
//注意文件句不加后缀.*
::SendMessage(hWnd,WM_CLOSE,NULL,NULL);//发送关闭命令
[解决办法]
1.主框架是否处理很多的东西?如果特别少,甚至没有,则集成到一起的问题不大,特别需要注意的是命名冲突的问题,这可以使用命名空间来管理自己的程序。
2.如果可以,使用DLL封装其中的一个,然后调用,这个有点难度,需要处理的东西比较多。
3.可以使用ShellExecute调用外部的程序。
4.可以使用createprocess来调用外部的程序。
[解决办法]
参考我的帖子
http://community.csdn.net/Expert/TopicView3.asp?id=5762655
不过在SetParent前,必须把WS_POPUP属性去掉,添加上WS_CHILD属性
DWORD dws = ::GetWindowLong(pwnd-> m_hWnd, GWL_STYLE);
dws = dws&~WS_POPUP;
dws = dws|WS_CHILD;
::SetWindowLong(pwnd-> m_hWnd, GWL_STYLE, dws);
pwnd-> SetParent(this);