窗口设置成固定大小
BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);
屏蔽掉最大化这个按钮在PreCreateWindow中处理

解决方案 »

  1.   

    从在以下函数:
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    // TODO: Modify the Window class or styles here by modifying
    //  the CREATESTRUCT cs cs.x = 0;//位置
    cs.y = 0;//
    cs.cx = 500;//宽
    cs.cy = 500;//高 cs.style &= ~WS_MAXIMIZEBOX;//禁止最大花 return TRUE;
    }
      

  2.   

    我想问,如果是SDK方式编程,
    怎么来做到固定窗口大小和取消最大化按钮?
    我是这么写的:
    SetWindowPos(hwnd,HWND_TOP,rect.left,rect.top,4,400,SWP_NOSIZE);
    可是不起作用呀。
      

  3.   

    SDK方式编程,你可以在调用CreateWindow函数创建窗口时,将窗口的属性设置为WS_OVERLAPPED(第3个参数),同时还可以设置窗口的位置与大小(第4到第7个参数)。
      

  4.   

    调用如下API函数
    hwnd = CreateWindow(Appname,TEXT("The Hello Program"),
    WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | MINIMIZEBOX,
    100,100,400,400,NULL,NULL,hinst,NULL);
      

  5.   

    另,你说的固定大小是不是指窗口不能放大缩小
    如果是就用如下代码
    hwnd = CreateWindow(Appname,TEXT("The Hello Program"),
    WS_OVERLAPPED ¦ WS_CAPTION ¦ WS_SYSMENU ¦ WS_EX_DLGMODALFRAME ¦ MINIMIZEBOX,
    100,100,400,400,NULL,NULL,hinst,NULL);
      

  6.   

    还是有问题呀,首先是MINIMIZEBOX是什么呀?
    还有,虽然常口不能调整大小了,但是最大化和最小化两个按钮也没有了。我希望这两个按钮还能被显示出来,只是最大化这个按钮变为无效(灰颜色)。
      

  7.   

    应该是
    hwnd = CreateWindow(Appname,TEXT("The Hello Program"),
    WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_EX_DLGMODALFRAME|WS_MINIMIZEBOX,
    100,100,400,400,NULL,NULL,hinst,NULL);
    对不起我打字时打错了,
    WS_MINIMIZEBOX就是在窗口中显示最小化按钮
    另,窗口的样式在WINUSER.H的头文件中都有定义,你可以去看看
      

  8.   

    响应 WM_GETMINMAXINFO 消息