解决方案 »

  1.   

    怎么没人回复就是自己写一个mfc程序,在程序中嵌入QQ,在QQ没有关闭前不能操作自己写的MFC程序;
    已知条件是能获取QQ的句柄;
      

  2.   

    楼主你想EXE对EXE,还是一个把代码移植到另外个EXE之中?
      

  3.   

    MFC中有自动化选项,可以将一个EXE嵌入另一个,前提是被嵌入的必须是自动化服务器,象WORD ,EXCEL,画笔等,
      

  4.   

    如果只是把另外一个程序的窗口嵌入进来可以
    创建一个CDialog,在OnInitDialog中HWND hWnd = ::FindWindow(_T("TXGuiFoundation"), _T("QQ"));
    ::SetParent(hWnd, GetSafeHwnd());
    ::SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) &~WS_POPUP | WS_CHILD);//移动到合适的位置
    CRect rc;
    GetClientRect(rc);
    ::MoveWindow(hWnd, rc.left, rc.top, rc.Width(), rc.Height()-20, TRUE);
    ::BringWindowToTop(hWnd);
    ::ShowWindow(hWnd, SW_SHOW);不过估计你想要的不只是如此。你可以查查看用钩子能不能解决你的问题。
      

  5.   

    是EXE对EXE;mlqxj35674能贴点实例代码吗
      

  6.   

    我现在想到的一个办法是如果调用子程序 ,先禁止父程序处理鼠标与键盘的消息
    代码如下:
    CWnd* pMainWnd = AfxGetMainWnd();
     pMainWnd->EnableWindow(FALSE);//  检测子程序是否退出 pMainWnd->EnableWindow(TRUE);
      

  7.   


    9月份到了,请你吃饭不容易啊!
    从那年的RNC,4年了,哎,时间真快啊。
      

  8.   

    在ShowWindow子对话的时候,EnableWindow(FALSE)父对话框
    子对话框隐藏或者销毁的时候EnableWindow(TRUE)父对话框
      

  9.   

    恩,一切还是要靠自己啊!下面是完整的解决方案,希望对以后遇到这个问题的人有帮助.实现子程序为模式对话框需要做以下几方面,
    第一、在启动子程序时需要用EnableWindow(FALSE)对父程序的鼠标与键盘消息禁用,
    在子程序结束时用EnableWindow(TRUE)恢复禁用的消息;第二、解决子程序始终显示在父程序界面前端,需要在启动子程序时使用
    ::SetWindowPos(  m_hWnd,  m_TestHwnd,0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
    进行设置;
    在父程序中需要在OnActivateApp函数中调用SwitchToThisWindow(m_TestHwnd, TRUE);使子程序窗口显示在最前面;感谢参与.