很多时候,在参数输入完成后,都需要点击一个按钮来执行某些操作。那么,更多的人是习惯敲击键盘上的回车键来响应该事件。
那么,如何响应回车键呢?
当然,若我们将MFC中系统默认的OK键作为响应的按键的话,那就不需要其他设置了。但是,往往我们会出现响应手动添加的button的响应。
搜索为例:
在文本框里输入关键字后,敲击回车键响应筛选键。
本质而言:响应键盘消息就是要重载PreTranslateMessage()函数。
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
switch(pMsg->message)
{
case WM_KEYDOWN:
switch(pMsg->wParam)
{
//处理Escape键的消息
case VK_ESCAPE:
return TRUE;
case VK_RETURN:
if (::GetDlgCtrlID(pMsg->hwnd) == IDC_EDIT1)//文本框ID:IDC_EDIT1
{//按钮ID:IDC_BUTTON1
PostMessage(WM_COMMAND, MAKEWPARAM(IDC_BUTTON1, BN_CLICKED), (LPARAM)GetDlgItem(IDC_BUTTON1)->m_hWnd);
}
return TRUE;
default:
break;
}
break;
default:
break;
}
return CDialog::PreTranslateMessage(pMsg);
}