现在有两个程序,程序A和程序B(A.exe和B.exe)
我想将程序B嵌入到程序A中,就是像多文档那样,程序B变成类似其中一个文档的样子(具体来说就是点击A中的一个菜单项,程序B就在A中开始运行)我是这样做的运行程序B时将B的父窗口设置成了A,虽然达到了上面的效果,但是程序A就未响应了,关闭程序B也不好使,把B的父窗口设成NULL也不管用(程序A一直都是未响应状态)请问这是怎么回事啊?或者有什么其它嵌入程序B的好方法也可以,请求高人指点,谢谢!

解决方案 »

  1.   

    嵌入就是把B的父窗口设置成A程序了,关闭B时,B的进程完全关闭了,但是A还是未响应
      

  2.   

    在两个程序都做相互监测,比如在A中不停的监测B,如果B不在了,A则关闭自己。B也同理。
      

  3.   

    问题听起来比较高深,学习一下,感觉不是很容易就能解决的。窗口的句柄不应该能够垮进程传递。按理说对B的窗口调用SetPrarentWindow, B应该出问题才对啊。
      

  4.   

    你先试试看在A打开B了之后,WaitForSingleObject,等待b退出,然后A能不能响应呢……要求比较怪的说..减少其他可能因素慢慢试试看罗。
      

  5.   

    点击A中的一个按钮,程序B就在A中开始运行是这样实现的:
    void CDialog**::OnButton1() 
    {
    ShellExecute(this->m_hWnd,"open",     
                ".\\exe\\B.exe",   
                NULL,     
                NULL,     
                SW_SHOWNORMAL);
    }
    你试试行不
      

  6.   

    感谢大家的帮助,A程序是我写的,B程序是其他第3方的exe,未响应的原因还不是很清楚,不过我把程序A工程换为基于单文档的就好使了(原来的A是基于对话框的工程)