项目中要对对话框的键盘按键做出相应,实现逻辑如下:
VS2005开发MFC的wince项目;在对话框中‘重写’ PreTranslateMessage方法;
1.头文件中添加:virtual BOOL PreTranslateMessage(MSG* pMsg);
2.cpp文件的实现代码:
BOOL CSystemSetupDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
{
UINT iKey=(UINT)pMsg->wParam;
switch(iKey)
{
case VK_F1:
if(GetKeyState(VK_CONTROL)<0)
{
//CTRL+F1的处理逻辑
}
break;
case VK_F2:
if(GetKeyState(VK_CONTROL)<0)
{
//CTRL+F2的处理逻辑
}
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
这样对话框就能相应键盘按键消息了。