我想解决的问题是找出是否按下了通过USB连接的踏板。踏板实际上是一键键盘,映射到键B。
问题是PreTranslateMessage给了我键的Unicode值,所以如果语言栏设置为不同的语言,比如希伯来语,我会得到任意字母映射到键B的Unicode值,比如字母Nun在希伯来文。
我正在使用的代码是
BOOL CViewerDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
if (pMsg->wParam == 'B')
videoSwitch();
return CDialog::PreTranslateMessage(pMsg);
}
当语言栏选择了英语时,wParam包含十六进制42(=大写B),当选择希伯来语时,它包含十六进制e7,表示传递的Unicode字符就像是击键一样。
有没有办法找出按下了哪个物理键?
也许将踏板上的键(仅限第二个键盘)映射到其他键?
可能确定按键发起的键盘是什么?