比如跳出一个提示框,询问是否真正关闭程序?
6 个解决方案
#1
在WM_CLOSE消息的响应函数里处理。
#2
在OnSysCommand()里处理SC_CLOSE
#3
afx_msg void OnClose();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
...
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
//{{AFX_MSG_MAP(CMixTestDlg)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CXXXDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
...
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
//{{AFX_MSG_MAP(CMixTestDlg)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CXXXDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
#4
添加WM_DESTROY消息處理
#5
用OnSysCommand()函数来激活系统关闭命令.
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
#6
用OnSysCommand()函数来截获系统关闭命令.
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
#1
在WM_CLOSE消息的响应函数里处理。
#2
在OnSysCommand()里处理SC_CLOSE
#3
afx_msg void OnClose();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
...
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
//{{AFX_MSG_MAP(CMixTestDlg)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CXXXDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
...
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
//{{AFX_MSG_MAP(CMixTestDlg)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CXXXDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
#4
添加WM_DESTROY消息處理
#5
用OnSysCommand()函数来激活系统关闭命令.
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
#6
用OnSysCommand()函数来截获系统关闭命令.
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// 截获定制的系统菜单消息
if ((nID & 0xFFF0)==SC_COLSE)
MessageBox("确认退出?","系统提示",MB_ICONYESNO);
else CMDIFrameWnd::OnSysCommand(nID, lParam);
}