BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// WPARAM wp;
// TODO: Add your specialized code here and/or call the base class
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE) // 如果按的键为Esc键
{// 获取主框架窗口的指针
// 调用主窗口类的自定义函数 EndFullScreen ,便可退出全屏显示状态
EndFullScreen();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_F5) // 全屏
{// 获取主框架窗口的指针
// 调用主窗口类的自定义函数 EndFullScreen ,便可退出全屏显示状态
OnFullScreen();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_F6) //拍摄图片
{// 获取主框架窗口的指针
SavetoFile();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==97)//数字键1;
{
init();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==98)//数字键2;
{
CModuletestView *pView=(CModuletestView*)this->GetActiveView();
if(pView){
pView->bcheck=!pView->bcheck;
bool bcheck=pView->bcheck;
ModifyVideoSize(bcheck);
}
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==96)//数字键0;
{
stop();
}
}
return CFrameWnd::PreTranslateMessage(pMsg);
}
为什么按键Esc,F5,F6都能正确响应而键入数字0,1,2却没有响应。
{
// WPARAM wp;
// TODO: Add your specialized code here and/or call the base class
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE) // 如果按的键为Esc键
{// 获取主框架窗口的指针
// 调用主窗口类的自定义函数 EndFullScreen ,便可退出全屏显示状态
EndFullScreen();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_F5) // 全屏
{// 获取主框架窗口的指针
// 调用主窗口类的自定义函数 EndFullScreen ,便可退出全屏显示状态
OnFullScreen();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_F6) //拍摄图片
{// 获取主框架窗口的指针
SavetoFile();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==97)//数字键1;
{
init();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==98)//数字键2;
{
CModuletestView *pView=(CModuletestView*)this->GetActiveView();
if(pView){
pView->bcheck=!pView->bcheck;
bool bcheck=pView->bcheck;
ModifyVideoSize(bcheck);
}
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==96)//数字键0;
{
stop();
}
}
return CFrameWnd::PreTranslateMessage(pMsg);
}
为什么按键Esc,F5,F6都能正确响应而键入数字0,1,2却没有响应。
VK_NUMPAD0 60 数字小键盘上的 0 键
VK_NUMPAD1 61 数字小键盘上的 1 键
VK_NUMPAD2 62 数字小键盘上的 2 键http://dev.csdn.net/develop/article/22/22730.shtm
(0~9)=>(45,35,40,34,37,12,39,36,38,33)
上面是实测结果。
0、1、2分别是pMsg->wParam==48、49和50
pMsg->wParam==97不是数字键1,而是字母a
不,正是小键盘上的数字,但前提是Num-Lock按下,wParam并非是返回的ASCII码<后者在WM_CHAR>