Rover12421's Blog

The End.

MFC Dialog 屏蔽默认的回车键和ESC键响应

      最近想做个小工具,用MFC的Dialog来做。这次准备把需要用到的全部记录下来。很多东西一旦时间久了就不容易记起,记录下来也可以方便查找。

      MFC Dialog对话框程序都会默认的响应回车键和ESC键。回车键默然是绑在ID_OK这个Button按钮上,也可以在对话框属性上修改成其他键。ESC默然响应的是退出游戏。ID_OK按钮的默然事件也是退出游戏。

      处理方法是重载PreTranslateMessage虚函数。

01 BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg)
02 {
03     // TODO: Add your specialized code here and/or call the base class
04     if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
05     {
06         //不处理ESC键响应
07         return TRUE;
08     }
09     if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
10     {
11         //不处理回车键响应
12         return TRUE;
13     }
14     return CDialogEx::PreTranslateMessage(pMsg);
15 }

Comments