单文档视图的如何置于最前显示,其他程序挡不住它?代码如何实现?

解决方案 »

  1.   

    两种途径:
    1.BringWindowToTop(Handle);
    2.SetWindowPos函数,指定窗口的 最顶风格,用WS_EX_TOPMOST扩展窗口的 风格Example:
    void  ToggleTopMost( CWnd *pWnd)
    {
            ASSERT_VALID(pWnd);
             pWnd ->SetWindowPos(pWnd-> GetStyle( ) &WS_EX_TOPMOST)?
                  &wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE);
    }SetWindowPos( &wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
      

  2.   

    将上面的代码放在CMainFrame中处理即可!
      

  3.   

    置最前:CWnd *pWnd=AfxGetMainWnd(); 
    pWnd->SetWindowPos( &wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );取消置最前:
    CWnd *pWnd=AfxGetMainWnd(); 
    pWnd->SetWindowPos( &wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );