不要在对话框的属性的STyle的Border选择筐中选择Resizing。

解决方案 »

  1.   

    可以把鼠标指针限在客户区中
    或都把DOWRD dwStylw = GetWindowLong(hWnd,GWL_STYLE);
    SetWindowLong(hWnd,GWL_STYLE,dwStyle&(~WS_DLGFRAME));
      

  2.   

    可以把鼠标指针限在客户区中

    DOWRD dwStylw = GetWindowLong(hWnd,GWL_STYLE);
    SetWindowLong(hWnd,GWL_STYLE,dwStyle&(~WS_DLGFRAME));
      

  3.   

    窗口风格中,WS_BORDER 说明了创建的窗口是有边界的。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 

        cs.style |= WS_BORDER;
        return CFrameWnd::PreCreateWindow(cs); 
    }
      

  4.   

    重载afx_msg void OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI );
    把窗口最大和最小尺寸设成一样
      

  5.   

    masterz is right.WM_GETMINMAXINFO
      

  6.   

    重载WM_SIZE的消息就可以了,
    或者用masterz的方法也可以。但这两种方法都有点毛病:就是鼠标在窗体边缘的时候,光标会变成双箭头。
    所以,就用xiaozuo,hedayu的方法算了,又简单,又实惠:)
      

  7.   

    好像加上一个Style就可以了。具体是哪个我忘了。
      

  8.   

    如果是对话框如下(其它类似):
    long style=::GetWindowLong(pDlg->GetSafeHwnd(),GWL_STYLE);
    style|=WS_THICKFRAME;
    style^=WS_SYSMENU;
    style=::SetWindowLong(pDlg->GetSafeHwnd(),GWL_STYLE,style);
      

  9.   

    推荐解决办法:
    BOOL YourDlg::OnInitDialog() 
    {
    //todo:
    CMenu* pSysMenu = GetSystemMenu(FALSE); 
    if (pSysMenu != NULL)

    pSysMenu->DeleteMenu(MF_BYCOMMAND,SC_SIZE);
    ModifyStyle( 0,WS_MAXIMIZE|WS_MAXIMIZEBOX|WS_MINIMIZEBOX|WS_MINIMIZE,1);
    }
    }try it