如题

解决方案 »

  1.   

    void CYourDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {

    lpwndpos->flags |= SWP_NOMOVE;
    CDialog::OnWindowPosChanging(lpwndpos);

    }
      

  2.   

    方法一:重载 OnNcLButtonDown() 函数,里面直接返回。方法二:在 OnInitDialog() 中添加
        GetSystemMenu(FALSE)->RemoveMenu(SC_MOVE, MF_BYCOMMAND);推荐使用后者。
      

  3.   

    to: WindsonZhL(风之子)  
    不行产生中断了我是想让你一个对话框限制在一个固定的位置,不能够移动。,。。to: _foo(void)            //莫名函数:) 你的方法可以限制移动,就是我限定的位置有一点上移,而且SETPOSITION()调整不了它的Y坐标。不知道各位朋友还有什么办法。
      

  4.   

    回复人: jnlon(雪域颠峰) ( ) 信誉:97  2004-04-10 11:06:00  得分:0 
     
     
      加了这条语句我的对话框的位置上移了一个标题栏的高度,我还想用原来的位置。
    请问如何解决啊。。解决了问题马上结贴 。
      
     
    =============
    你可以设一个变量啊,
    m_bNoMove=FALSE;//这是对话框的成员变量,初始化是FALSEvoid CYourDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {

    if (m_bNoMove)
             {
                 lpwndpos->flags |= SWP_NOMOVE;
             }
    CDialog::OnWindowPosChanging(lpwndpos);

    }在initdialog中用setwindowpos把窗口定位到理想的位置后,把m_bNoMove置为直。
      

  5.   

    同样,你想在别的时候设置窗口位置的话,先把m_bNoMove置为假,事后再置为真
      

  6.   

    WindsonZhL(风之子) :就是不能够运行啊。如果你确定没写错的话。,我就是复制你的第二句话,不知道是什么意思,我复制了运行不了。不过还是要谢谢你,一会有什么问题我一定还要像大家请教的。
      

  7.   

    _foo(void)            //莫名函数:) 已经解决了。我是用了。一个第三方类库,他里面有BUG所以我就的自己添加修改,,,不然的话给本不用设置它不让移动,我现在已经明白了是怎么回事了。。谢谢你的
    指点,我知道我错在哪里。。以后多多帮忙。我要结贴给分了。速战速决,希望你们以后记住我。多帮我