工作中没有小事:点石成金,滴水成河,只有认真对待自己所做的一切事情,才能克服万难,取得成功。
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); }