本文主要是介绍对话框不响应WM_KEYDOWN消息,可以通过重载BOOL PreTranslateMessage(MSG * pMsg)来实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对话框程序中,如果不响应WM_KEYDOWN消息,可以通过重载PreTranslateMessage(MSG* pMsg)来实现
如下例:
BOOL CShowImageDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN){
switch(pMsg->wParam)
{
case VK_LEFT:
SendMessage(WM_KEYDOWN,pMsg->wParam,pMsg->lParam);
return TRUE; // 不使用默认的方向键调用方式 如果不加return ture 按左方向键时 光标会移动左面的控件上
case VK_RIGHT:
SendMessage(WM_KEYDOWN,pMsg->wParam,pMsg->lParam);
return TRUE;
case VK_DOWN:
SendMessage(WM_KEYDOWN,pMsg->wParam,pMsg->lParam);
return TRUE;
case VK_UP:
SendMessage(WM_KEYDOWN,pMsg->wParam,pMsg->lParam);
return TRUE;
}
}
else if (pMsg->message==WM_KEYUP)
{
if(pMsg->wParam==VK_LEFT)
SendMessage(WM_KEYUP,pMsg->wParam,pMsg->lParam);
}
return CDialog::PreTranslateMessage(pMsg);
}
这篇关于对话框不响应WM_KEYDOWN消息,可以通过重载BOOL PreTranslateMessage(MSG * pMsg)来实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!