一般都兩種方法,一種是回車鍵之類的響應消息;另一種就是重寫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();
}