怎样才可以把一个窗口置于最底端(跟最顶端相反),就是说无论怎样激活窗口都不会遮住其他窗口

解决方案 »

  1.   

    设为桌面上那个syslistview的子窗口
      

  2.   

    CWnd *pDesktop = CWnd::GetDeskTopWindow();
    CWnd *pChild = pDesktop->GetWindow(GW_CHILD)
      

  3.   

    To:CuckFSDN(请不要歪曲我的ID!) syslistview是什么东东!?
      

  4.   

    TO:wuxfBrave(向五个三角杀啊,请多给分) 按照你的方法去做不行呀!我的代码如下(我是在响应一个按钮点击事件中加入的!):CWnd *pDesktop = CWnd::GetDesktopWindow();
    CWnd *pChild = pDesktop->GetWindow(GW_CHILD);
    this->SetParent(pChild);
      

  5.   

    我想可不可以这样FindWindow();
    寻找所有目前打开的窗口,
    如果有就不让它激活
      

  6.   

    在InitInstance()里
    m_pMainWnd->SetWindowPos(&CWnd::wndBottom,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);在XXView.cpp里的OnTimer()里也加上:
    AfxGetMainWnd()->SetWindowPos(&CWnd::wndBottom,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);别忘了初始化时SetTimer(1,10,0);
      

  7.   

    谢谢 wuxfBrave的解答!!!这里把他的回复贴上来!大家共享一下!
    void CXDlg::OnButton1() 
    {
           CWnd *pDesktop = CWnd::GetDesktopWindow();
           this->SetParent(pDesktop);       
           ::SetWindowPos(m_hWnd, wndBottom, 0, 0, 0, 0, SWP_NOSIZE ¦SWP_NOMOVE);}void CXDlg::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) 
    {
           lpwndpos->flags  ¦= SWP_NOZORDER ¦SWP_NOMOVE ¦SWP_NOOWNERZORDER;
    //       CDialog::OnWindowPosChanged(lpwndpos);
    }void CXDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {
           lpwndpos->flags  ¦= SWP_NOZORDER ¦SWP_NOMOVE ¦SWP_NOOWNERZORDER;
           ::SetWindowPos(m_hWnd, wndBottom, 0, 0, 0, 0, SWP_NOSIZE ¦SWP_NOMOVE);
           //       CDialog::OnWindowPosChanging(lpwndpos);       
    }
      

  8.   

    粘贴有点问题!上面代码中的¦为"|"符号wuxfBrave的代码有个小BUG,就是窗口不能移动!只要把其中的SWP_NOMOVE 就可以解决问题!