请教各位高手:
现在我在做键盘驱动,发现一个问题,
我想 用某个按键做标准键盘里面的 * 和 . 两个符号,
我差了键盘值,
* -----> 0x6a
. -----> 0x6e
keybd_event(0x6a,0, KEYEVENTF_SILENT, 0);
//结果 系统收到的键值是 0x2a
keybd_event(0x6e,0, KEYEVENTF_SILENT, 0);
//结果 系统收到的键值是 0x2e
但是奇怪的是
keybd_event(0x6a,0, KEYEVENTF_KEYUP, 0);
//结果 系统收到的键值是 0x6a
keybd_event(0x6e,0, KEYEVENTF_KEYUP, 0);
//结果 系统收到的键值是 0x6e
为什么会这样啊?
请高手指点一下~!!
非常感谢~!
奇怪啦,
我在 MFC 里面重载
PreTranslateMessage(MSG* pMsg) //加入这个消息事件
{ //判断是否就是键盘
if(WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)
{
pMsg->wParam
这里这个值 怎么是 0x2a
}
}
但是在文本输入里面却是正确的~!,
郁闷死啦~~!~!!~!!
找到原因了
是 MFC 的问题截取键盘事件的问题。
PreTranslateMessage(MSG* pMsg) //加入这个消息事件
{ //判断是否就是键盘
if (pMsg->message == WM_KEYDOWN || pMsg->message == WM_KEYUP)
{
pMsg->wParam
这个值就对了~!
}
}
小弟愚昧啊~!~!