你查查下边函数,是用来干什么的~~
keybd_event 我也遇到了这个问题:keybd_event(0x30+idx ,0x30+idx, 0, 0);
Sleep(1);
keybd_event(0x30 + idx ,0x30 + idx, KEYEVENTF_KEYUP, 0);
首先便于叙述, 按照串口打印的硬件扫描码 对键盘进行编号:
为0号键 idx 为 0;
为1号键 idx 为 1;
为1号键 idx 为 2;
.....
为10号键 idx 为 10;
为10号键 idx 为 10;
查询了下MSDN, 说这里是模拟键盘的按键动作, 当idx 是0 的时候, 模拟的是按一次'0'的动作,当idx是1的时候,模拟的是'1'的动作 .
于是按照这个逻辑, 我打开winCE的记事本, 依次按 0号键 到 9 号键, 在记事本上输出 '0' - '9'; 但是下面的就不输出了.
所以我觉的 键盘扫描码到虚拟键值的映射不是由keybd_event函数来实现的.
下面我又注意到了这个函数:
v_pfnKeybdEvent(v_uiPddId, rguiScanCode, rgfKeyUp);
这个函数是由函数指针一路传递进来的, 我查阅了资料, 这个函数好像是这个函数 KeybdEventCallback(
UINT uiPddId,
UINT32uiScanCode,
BOOL fKeyUp
)
我在里面放置了打印函数, 可惜没有输出.
正如楼主所说, 我对ScanCodeToVKeyTable修改也不能正确映射....
现在 整的 我头晕脑胀的, source insight 一天了... 彻底晕死在代码里面了.
who can help me!!!
请飞凌的高手, 诸位大神,帮帮我, 8 * 8 键盘如何实现的 映射? 谢谢. 非常感谢.
页:
[1]