MFC 对话框应用程序按Alt+F4退出程序实现方法
重写OnSysCommand函数
1.添加消息处理函数
在对话框类的头文件(.h)中添加:
cpp
protected:
virtual void OnSysCommand(UINT nID, LPARAM lParam);
DECLARE_MESSAGE_MAP()
2.在实现文件(.cpp)中添加实现
cpp
// 在消息映射中添加
BEGIN_MESSAGE_MAP(CYourDialog, CDialog)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
// 实现OnSysCommand函数
void CYourDialog::OnSysCommand(UINT nID, LPARAM lParam)
{
// 检查是否是关闭系统命令(Alt+F4)
if ((nID & 0xFFF0) == SC_CLOSE)
{
// 弹出确认消息框
if (MessageBox(_T("确定要退出程序吗?"), _T("退出确认"),
MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2) == IDYES)
{
// 用户确认退出
CDialog::OnSysCommand(nID, lParam);
}
// 如果用户选择"No",则不执行任何操作(不退出)
}
else
{
// 处理其他系统命令
CDialog::OnSysCommand(nID, lParam);
}
}
