满意答案
何必偶家个
2018.07.31
采纳率:44% 等级:8
已帮助:11人
在dialog中是不能响应WM_KEYDOWN的 如果要响应的话 可以重载BOOL CKeseDlg::PreTranslateMessage(MSG* pMsg) 这个函数
在MFC(Microsoft Foundation Class)对响应消息进行了封装,
可以通过重载虚函数PreTranslateMessage()对所关心的消息进行截取与响应:
以下对截取与响应键盘 Enter 消息的截取与响应
这是对话框的响应键盘 Enter 消息方式:
BOOL C**Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
//判断是否为键盘消息
if (WM_KEYFIRST <&#61; pMsg->message && pMsg->message <&#61; WM_KEYLAST)
{
//判断是否按下键盘Enter键
if(pMsg->wParam&#61;&#61;VK_RETURN)
{
//Do anything what you want to
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
这是View视图类响应键盘 Enter 消息的方式&#xff1a;
BOOL C**View::PreTranslateMessage(MSG* pMsg)
{
if (WM_KEYFIRST <&#61; pMsg->message && pMsg->message <&#61; WM_KEYLAST)
{
if(pMsg->wParam&#61;&#61;VK_RETURN )
{
//Do anything you want here
return TRUE;
}
}
return CFormView::PreTranslateMessage(pMsg);
}
00分享举报