初始设置用MoveWindow,想在哪儿就在哪儿。
不可移动?最简单的是不要标题条(dialog的属性里可以设),这样就拖不动了。

解决方案 »

  1.   

    用用如下代码:
    LRESULT CXXXDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
             // TODO: Add your specialized code here and/or call the base class
             if(message==WM_SYSCOMMAND&&wParam==SC_MOVE)
             {
                      return 1;
             }
             LRESULT ls = CDialog::WindowProc(message, wParam, lParam);
             if(message==WM_NCHITTEST&&ls==HTCAPTION)
                      return HTCLIENT;
             return ls;
    }
      

  2.   

    重载消息WM_WINDOWPOSCHANGING!
    from msdn: "An application can prevent changes to the window by setting or clearing the appropriate bits in the flags member of WINDOWPOS. "
    LRESULT OnWindowPosChanging(
        WPARAM wParam, 
        LPARAM lParam)
    {
        LPWINDOWPOS pwndpos;    pwndpos = (LPWINDOWPOS)lParam;    pwndpos |= (SWP_NOMOVE | SWP_NOSIZE);
        return 0;
    }好了,现在甭说用户,连程序(别人的或自己的)也改变不了这个窗口的位置和大小了!
      

  3.   

    拖拖这个程序的窗口试一试!http://go3.163.com/~cloudyshadow/chatgod2.zip要原代码吗?