一个自认该打自己耳光的问题?

猎人66 2000-12-14 09:21:00
请教各位大虾:键盘的扫描码和ASCII码有什么区别?键盘的扫描码哪里有?
...全文
203 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
猎人66 2000-12-19
  • 打赏
  • 举报
回复
to gcai:当然要,请MAIL至zcm314@elong.com,50分相谢!
gcai 2000-12-16
  • 打赏
  • 举报
回复
你真的要键盘扫描码吗?我这有键盘的协议及一些键盘芯片的资料里面有详细的,要的话就mail我.
xiaozuo 2000-12-16
  • 打赏
  • 举报
回复
扫描码和硬件键盘的内部电路有关,由于都使用标准的键盘,所以大家就认为和硬件无关了。键盘驱动程序负责把扫描码转化成键盘的扩展ASCII码,键盘上单个字符的扩展ASCII的高字节为0,可以产生WM_CHAR消息,多个键的组合键,例如ALT+A,就会有一些额外的扫描信息表示ALT键也按下了,扩展ASCII的高字节不为0。在实际使用时并不需要关心和设置这个扫描码。
Jans 2000-12-14
  • 打赏
  • 举报
回复
无论那个扫描码每个键都会有,而ASCII码只有象字符键、方向键、翻页键等才会有、
而且每个键都会触发WM_KEYDOWN消息,而只有有ASCII的键WM_CHAR消息
好像是这样吧
ivefire 2000-12-14
  • 打赏
  • 举报
回复
键盘的扫描码有两字节,而ASCII码只有一字节,当按下普通键时,扫描码的低字节等于ASCII码,高字节为00。按下组合键扫描码如何组织,我也记不清楚了。看看关于汇编的书吧,里面有介绍。
vcbear 2000-12-14
  • 打赏
  • 举报
回复
直接给你来一段MSDN吧
WM_KEYDOWN
The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the alt key is not pressed.

WM_KEYDOWN
nVirtKey = (int) wParam; // virtual-key code
lKeyData = lParam; // key data

Parameters
nVirtKey
Value of wParam. Specifies the virtual-key code of the nonsystem key.
lKeyData
Value of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table. Value Description
0–15 Specifies the repeat count for the current message. The value is the number of times the keystroke is auto-repeated as a result of the user holding down the key. If the keystroke is held long enough, multiple messages are sent. However, the repeat count is not cumulative.
16–23 Specifies the scan code. The value depends on the original equipment manufacturer (OEM).
24 Specifies whether the key is an extended key, such as the right-hand alt and ctrl keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
25–28 Reserved; do not use.
29 Specifies the context code. The value is always 0 for a WM_KEYDOWN message.
30 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.
31 Specifies the transition state. The value is always 0 for a WM_KEYDOWN message.


16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧