vc中如何加键盘响应
发布网友
发布时间:2022-04-23 01:35
我来回答
共1个回答
热心网友
时间:2023-10-04 15:53
在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 <= pMsg->message && pMsg->message <= WM_KEYLAST)
{
//判断是否按下键盘Enter键
if(pMsg->wParam==VK_RETURN)
{
//Do anything what you want to
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
这是View视图类响应键盘 Enter 消息的方式:
BOOL C**View::PreTranslateMessage(MSG* pMsg)
{
if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)
{
if(pMsg->wParam==VK_RETURN )
{
//Do anything you want here
return TRUE;
}
}
return CFormView::PreTranslateMessage(pMsg);
}