一般都两种方法,一种是回车键之类的响应消息;另一种就是重写OnOK和OnCancel函数,我喜欢用后一种方法,实现如下:
1. 在头文件声明
public:
virtual void OnOK();
virtual void OnCancel();
2.在原文件实现:
void CXX::OnOK()
{
CWnd* pWnd = GetFocus();
if (GetDlgItem(IDOK) == pWnd)
{
CDialog::OnOK();
return;
}
}
void CXX::OnCancel()
{
CWnd* pWnd = GetFocus();
if (GetDlgItem(IDCANCEL) == pWnd)
{
CDialog::OnCancel();
return;
}
}
3.此时回车键还是能关闭,因为主页的确定按钮功能在,删除或者禁用即可;
4.这时候点对话框上的关闭按钮都不能关闭对话框了,需要添加一个OnClose消息函数,添加方法如下:
资源视图 打开对话框界面 右键属性 点击消息按钮 给WM_CLOSE添加消息响应函数,OnClose,实现如下:
void CpatientInfoRecordDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialog::OnOK();
CDialogEx::OnClose();
}