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

原创 2016年05月30日 23:55:42

解决方案

具体操作:
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;

版权声明:本文为博主原创文章,未经博主允许不得转载。

MFC对话框增加最大化和最小化按钮

1.在对话框上右键选择属性 2.切换到
  • yal179
  • yal179
  • 2014年05月30日 14:01
  • 3797

禁止调整窗口大小(MFC)

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)...{    if( !CFrameWnd::PreCreateWindow(cs) )     ...
  • yhmhappy2006
  • yhmhappy2006
  • 2006年10月07日 00:40
  • 4877

MFC去掉窗口右上方最大化最小化关闭按钮

MFC去掉窗口右上方最大化最小化关闭按钮
  • eickandy
  • eickandy
  • 2015年09月17日 08:53
  • 4410

MFC禁止窗口最大化按钮和禁止改变窗口大小

1.  修改PreCreateWindow()函数如下:   BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)   {   if(...
  • scottmama
  • scottmama
  • 2016年12月30日 10:31
  • 1600

[MFC]禁止双击标题栏最大化&还原

引子用MFC写的程序,双击标题栏,程序会最大化,再次双击程序还原,如何禁止这样响应呢?其实这是需要自己对 WM_NCLBUTTONDBLCLK 的消息进行处理。具体做法重载 DefWindowProc...
  • humanking7
  • humanking7
  • 2016年10月07日 22:50
  • 1294

MFC学习笔记——如何使窗口最大化,但不遮盖任务栏

使用ShowWindow(SW_MAXIMIZE),使对话框最大化后,任务栏也被遮住了,如何去掉任务栏的遮盖?而且对话框窗口还处于激活状态。此时,应该没有设置WS_CAPTION属性,只能自己Move...
  • shanshangyouzhiyangM
  • shanshangyouzhiyangM
  • 2016年07月19日 11:43
  • 1712

MFC禁用关闭按钮、最小化、最大化

禁用关闭按钮 BOOL TestResultText::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initi...
  • weiwei_c
  • weiwei_c
  • 2013年03月30日 01:35
  • 1684

MFC禁止窗口最大化

禁止窗口最大化等按钮  修改PreCreateWindow()函数如下:  BOOL CWndMain::PreCreateWindow(CREATESTRUCT& cs)  {  if( !CFra...
  • jasonkent27
  • jasonkent27
  • 2014年04月07日 22:37
  • 385

关于MFC禁止窗口最大化按钮和禁止改变窗口大小

禁止窗口最大化等按钮  修改PreCreateWindow()函数如下:  BOOL CWndMain::PreCreateWindow(CREATESTRUCT& cs)  {  if( !CFra...
  • zzzili
  • zzzili
  • 2012年12月06日 15:29
  • 1577

MFC禁止窗口最大化最小化的代码

禁止窗口最大化最小化的代码  cs.dwExStyle &= ~WS_EX_CLIENTEDGE; cs.style &= ~WS_MAXIMIZEBOX; //禁止窗口最大化 //cs.style...
  • Nat_myron
  • Nat_myron
  • 2012年11月17日 11:19
  • 1398
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何禁用MFC单文档主窗口的最大化按钮?
举报原因:
原因补充:

(最多只允许输入30个字)