在MFC中,我去掉最大化和最小化了,当我想让它们仍然显示出来(灰显)只是不可用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MFC中,我去掉最大化和最小化了,当我想让它们仍然显示出来(灰显)只是不可用相关的知识,希望对你有一定的参考价值。
我用函数SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE)&~WS_MAXIMIZEBOX&~WS_MINIMIZEBOX);去掉了最大化和最小化,但这2个按钮消失了。当我只去掉最大化时,最大化就灰显不可用,怎么让最大化和最小化都灰显不可用而不是消失呢?
方法1:重载对话框的消息响应函数,对最大化最小化等消息进行屏蔽LRESULT Cxx::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
// TODO: Add your specialized code here and/or call the base class
switch (message)
case WM_SYSCOMMAND:
if(wParam == SC_MINIMIZE)
return;
break;
return CDialog::WindowProc(message, wParam, lParam);
方法2:重载onsyscommand
if((nid&oxfff0)==SC_ICON)//最小化
return;
if((nid&oxfffo)==SC_RESTORE)//回复
return;追问
这样取消后的结果仍然是2个按钮都消失了。有没有其他办法呢?
追答如上
参考技术A 我想你是在CMainFrame:: ONCREATE中修改的吧!你要的那种情况应该是在CMainFrame:: PreCreate中去修改
应该是这样的
mfc单文档如何去掉最小化 还原
参考技术A 可以在dlg里选择你要修改的dlg的属性,将maximize box和minimize box设为false就行了。你的dlg的右上角就没有最小化,最大化按钮了本回答被提问者和网友采纳以上是关于在MFC中,我去掉最大化和最小化了,当我想让它们仍然显示出来(灰显)只是不可用的主要内容,如果未能解决你的问题,请参考以下文章
mfc多文档子窗口最大化后怎样去掉右上角的系统按钮(最大化,最小化和关闭)
MFC/VC 在多文档MDI程序中 子窗口初始最大化显示 如何去掉菜单栏右侧的最小化及向下还原按钮