我建立了一个单文档程序,将鼠标移动到标题栏,按住鼠标左键不放移动可以拖动窗体移动,我想屏蔽这个功能,就是按住鼠标左键不放移动,不能使窗体移动,该如何修改?请高手指点!!

解决方案 »

  1.   

    NcLButtonDown  在这个消息中可以处理
      

  2.   

    处理 WM_WINDOWPOSCHANGING 或 WM_MOVING 消息.
      

  3.   

    在主框架窗口中添加ON_WM_WINDOWPOSCHANGING()消息,
    void CMainFrame::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {
    lpwndpos->flags |= SWP_NOMOVE | SWP_NOSIZE; CFrameWnd::OnWindowPosChanging(lpwndpos);

    // TODO: Add your message handler code here

    }
    不可移动和不能改变窗口的大小。
      

  4.   

    谢谢VisualEleven,你说的很详细。但是我尝试你说的方法,问题又出来了。我的程序启动的时候通过ShowWindow(SW_SHOWMAXIMIZED)将其最大化了,把代码添加上之后程序不是正常最大化,就是有一部分程序界面在屏幕显示之外,这个该如何处理?
      

  5.   

    谢谢tanwei1002,不过你说的很朦胧,能不能具体一点,就是求具体的代码。呵呵,不好意思。
      

  6.   

    如果是这样的话,很简单,把ShowWindow(SW_SHOWMAXIMIZED);语句加到void CMainFrame::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 的最前面即可。void CMainFrame::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {
    ShowWindow(SW_SHOWMAXIMIZED);
    lpwndpos->flags |= SWP_NOMOVE | SWP_NOSIZE; CFrameWnd::OnWindowPosChanging(lpwndpos);

    // TODO: Add your message handler code here

    }