使对话框的最大化、最小化和关闭按钮变灰以及对其重载的方法
2016-08-16 17:23
465 查看
一.使对话框的最大化、最小化和关闭按钮变灰。
1.在OnInitDialog()函数中添加以下代码使关闭按钮变灰:
CMenu* menu = this->GetSystemMenu(FALSE);
menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);
如果还想屏蔽掉Esc和Art + F4快捷键的话,重载On_Cancel()函数,将其中的CDialog::OnCancel();注释掉即可,如果将On_Ok()函数中的CDialogEx::OnOK();也注释掉,那只能通过自己添加其他按钮和操作或在任务管理器中关闭对话框了。
2.通过设置对话框属性中的Maximize Box属性和Minimize Box属性为False使最大化和最小化按钮变灰。
二.重载对话框的最大化、最小化和关闭按钮。
使用WM_SYSCOMMAND消息和wParam中的SC_CLOSE、SC_MAXIMIZE和SC_MINIMIZE,具体操作如下:
头文件:
protected:
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
DECLARE_MESSAGE_MAP()
cpp文件:
BEGIN_MESSAGE_MAP(CMFCTestApplicationDlg, CDialogEx)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
补充:WM_SYSCOMMAND消息的相关说明参考https://msdn.microsoft.com/en-us/library/ms646360%28v=vs.85%29.aspx
1.在OnInitDialog()函数中添加以下代码使关闭按钮变灰:
CMenu* menu = this->GetSystemMenu(FALSE);
menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);
如果还想屏蔽掉Esc和Art + F4快捷键的话,重载On_Cancel()函数,将其中的CDialog::OnCancel();注释掉即可,如果将On_Ok()函数中的CDialogEx::OnOK();也注释掉,那只能通过自己添加其他按钮和操作或在任务管理器中关闭对话框了。
2.通过设置对话框属性中的Maximize Box属性和Minimize Box属性为False使最大化和最小化按钮变灰。
二.重载对话框的最大化、最小化和关闭按钮。
使用WM_SYSCOMMAND消息和wParam中的SC_CLOSE、SC_MAXIMIZE和SC_MINIMIZE,具体操作如下:
头文件:
protected:
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
DECLARE_MESSAGE_MAP()
cpp文件:
BEGIN_MESSAGE_MAP(CMFCTestApplicationDlg, CDialogEx)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
补充:WM_SYSCOMMAND消息的相关说明参考https://msdn.microsoft.com/en-us/library/ms646360%28v=vs.85%29.aspx
相关文章推荐
- MFC对话框显示和不显示最小化、最大化和关闭按钮的方法
- 自实现最小化,最大化,关闭按钮方法
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- 修改Ubuntu启动项 及 最大化,最小化,关闭按钮右置方法
- Ubuntu 中把最大化最小化关闭按钮移动到右侧的方法
- 最大化/最小化/还原/关闭以及按钮图片的添加
- C#窗体编程不显示最小化、最大化、关闭按钮的方法
- 解决MFC对话框不显示最小化、最大化和关闭按钮的问题
- 重载 CreateParams 方法[1]: 从一个例子开始(取消窗口最大化、最小化按钮的三种方法)
- 重载 CreateParams 方法[1]: 从一个例子开始(取消窗口最大化、最小化按钮的三种方法)
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
- Mac应用开发--隐藏窗口里默认按钮(最大化、最小化、关闭等)的方法 NSWindowCloseButton
- Mac 开发中设置 关闭 以及最小化 最大化按钮事件处理
- ubuntu 12.04 LTS将最小化最大化关闭按钮移动到右上角的方法
- Mac 开发中如何设置 关闭 以及最小化 最大化按钮事件处理
- Ubuntu下修改启动项 及 最大化,最小化,关闭按钮右置方法
- 关于winForm窗体禁用关闭按钮的使用方法及禁用最大化、最小化窗口
- C#窗体皮肤制作(二):创建窗体库项目以及最小化、最大化、关闭按钮的实现
- ubuntu下设置关闭/最小化/最大化按钮左右位置方法
- ubuntu 将最大化,最小化,关闭按钮置于窗口右侧