关闭

如何禁用MFC单文档主窗口的最大化按钮?

878人阅读 评论(0) 收藏 举报
分类:

解决方案

具体操作:
1.单击程序左下角的ClassView选项卡,在CMainFrame类中双击PreCreateWindow函数,该函数原型如下:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
      if( !CFrameWnd::PreCreateWindow(cs) )
      return FALSE;
      // TODO: Modify the Window class or styles here by modifying
      // the CREATESTRUCT cs

      return TRUE;
}

2.只需向其中添加一句代码,即可。
cs.style &= ~WS_MAXIMIZEBOX ;// 设置样式,禁用最大化按钮
实现之后的代码:

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.cx=667;
  cs.cy=536;

  // 调整样式,禁用最大化
  cs.style &= ~WS_MAXIMIZEBOX;

  return TRUE;
  }

知识:
cs.style 就是窗口的风格,这个风格都是叫 WS_***

WS_CHILD // 子窗口
WS_MINIMIZE // 有最小化按扭
WS_VISIBLE // 可见
WS_MAXIMIZE // 有最大化按纽
WS_BORDER // 有边框

它们可以通过 | 符号组合

比如一个 可见的 有边框的窗口风格就是 WS_VISIBLE | WS_BORDER

要去掉某正风格 就 &~WM_*****

比如上面的去掉最大化按纽。
如果要去掉最大最小化按钮,可以这样:
cs.style &= ~WS_MAXIMIZEBOX;
cs.style &= ~WS_MINIMIZEBOX;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:86373次
    • 积分:1685
    • 等级:
    • 排名:千里之外
    • 原创:74篇
    • 转载:5篇
    • 译文:0篇
    • 评论:96条
    文章分类
    最新评论