工作中沒有小事:點石成金,滴水成河,只有認真對待自己所做的一切事情,才能克服萬難,取得成功。
https://blog.csdn.net/hisinwang/article/details/45751625
https://blog.csdn.net/OneTrianee/article/details/90290486
在MFC對話框中,經常會碰到按Enter或Esc鍵,對話框會被關閉的現象。
Enter鍵的處理流程如下:
1.如果對話框有按鈕擁有焦點 ,響應該按鈕的單擊事件 ,如果按鈕ID為IDOK,並且沒有事件響應函數,則執行函數OnOK()
2.否則執行函數OnOK()
Esc鍵的處理流程:
1.執行OnCancel()
關閉按鈕的處理流程:
1.找到消息(WM_CLOSE)的響應函數則執行
2.否則執行OnCancel()
我們查看源碼:CDialog的OnOK和OnCancel的代碼如下,都是關閉對話框
BEGIN_MESSAGE_MAP(CDialog, CWnd) ON_COMMAND(IDOK, &CDialog::OnOK) ON_COMMAND(IDCANCEL, &CDialog::OnCancel) END_MESSAGE_MAP() void CDialog::OnOK() { if (!UpdateData(TRUE)) { return; } EndDialog(IDOK); } void CDialog::OnCancel() { EndDialog(IDCANCEL); }