我的一个多视图程序,在View上面启动一个模式对话框,关闭该模式对话框以后,
我的整个多视图程序,变为桌面上第二层(就是窗口不再是顶层了,被其它窗口所遮挡);
但这个时候,多视图程序中当前打开的CMDIChildWnd标题栏还是激活的状态。我已经在该CMDIChildWnd打开时就将它设置为置顶的状态了。pMdiChildWnd->MDIActivate();
pMdiChildWnd->SetForegroundWindow();
pMdiChildWnd->SetActiveWindow();
但这个问题还是有的时候出现, 请大家帮一下忙。

解决方案 »

  1.   

    对话框的Owner 窗口是你程序主窗口吗
      

  2.   

    这个对话框的父窗口,我设置的就是当前打开的CformView
      

  3.   

         g_pWaitDlg = new CPfvCmDlgFlowListWait(this);//它是个对话框
         if(NULL == g_pWaitDlg)
         {        
             return;
         }
         g_bWaitFlag = TRUE
         g_pWaitDlg->DoModal();//在别的地方让该对话框退出,我的主窗口有的时候就会不置顶
         delete g_pWaitDlg;
         g_pWaitDlg = NULL;
      

  4.   

    ::SetWindowPos(AfxGetApp()->GetMainWnd()->m_hWnd, HWND_TOPMOST, rc.left, rc.top, rc.Width(), rc.Height(), SWP_SHOWWINDOW);
    就把那个现象消除了,但是这样不合理