功能键:ESC:VK_ESCAPE,TAB:VK_TAB,PageUp:VK_PRIOR,PageDown:VK_NEXT
Insert:VK_INSERT,Home:VK_HOME,End:VK_END
Alt:VK_ALT,Ctrl:VK_CONTROL,Shift:VK_SHIFT,Delete:VK_DELETE
上,下,左,右:VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT
F1,F2,F3...:VK_F1,VK_F2,VK_F3......
字母和数字:a,b,c ....:'A','B','C',.....
1,2,3,....:'1','2','3',.....
小键盘:1,2,3,........:VK_NUMPAD1,VK_NUMPAD2,VK_NUMPAD3,......
+,1:VK_ADD,VK_SUBTRACT
举例说明这些键的用法:
(一)响应单独的按键:
先添加PreTranslateMessage()(响应WM_CHAR)也是同样的效果,因为本例只捕捉键盘)
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam=='M')//直接用上面的虚码代替就可以响应所指键
MessageBox("hello");//如果按下M键弹出消息.比如想当按下小键盘1时
//弹出就用VK_NUMPAD1代替'M'
}
return CDialog::PreTranslateMessage(pMsg);
}
(二)组合键的用法:(本例响应Ctrl+X键)
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_ESCAPE:
SetFocus ();
return TRUE;
case 'X':
if(::GetKeyState(VK_CONTROL) < 0)//如果是Shift+X这里就
//改成VK_SHIFT
MessageBox("hello");
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
虚拟按键的总结
最新推荐文章于 2023-04-20 00:39:21 发布