模态对话框的确定和取消按钮,调用的是EndDialog来结束对话框,不会触发WM_CLOSE消息,因此,要在两个按钮响应消息OnOK和OnCancel中进行确认提示,以OnOK为例:
void CDialog1::OnOK()
{
if(IDOK==AfxMessageBox(_T("您确定要退出吗"),MB_OKCANCEL))
CDialogEx::OnOK()
}
需要注意的是,即使是模态对话框,如果在标题栏中增加了系统按钮,那么“红叉”按钮的关闭还是需要响应WM_CLOSE消息,也就是你同样需要在OnClose里面做这个确认提示。
非模态对话框,会屏蔽OnOK和OnCancel中的基类调用,只需要响应WM_CLOSE即可。
WM_CLOSE是标准消息,不是一楼说的命令消息。二楼的答案没错,VS2005用向导做的话鼠标点几下就行了。切换到类视图,选中CMainFrame,右击,选属性,在属性窗口中选择消息(点属性窗口顶上倒数第二个图标),找到WM_CLOSE消息,添加消息处理就行了,代码二楼的一样欢迎分享,转载请注明来源:内存溢出
评论列表(0条)