当前位置:鱼C工作室 >Windows程序设计 > 查看文章

字符消息 – Windows程序设计(SDK)034

字符消息

 

让编程改变世界

Change the world by program


 

字符消息

 

通过前边的学习我们知道当用户按下键盘上一个按键的时候,就会产生一个击键消息。也许是 WM_KEYDOWN,也许是 WM_SYSKEYDOWN 消息,这要看用户按的是哪一个按键。那么从这个消息的 wParam 参数中,我们可以获取该消息对应的虚拟键代码。虚拟键代码就是 Windows 为了统一各大厂家而约定的一个标准。

 

不过通过虚拟键代码只能判断用户按下的是哪个按键,但并不能确定用户按下哪个字符。有鱼油说:“小甲鱼你傻啊,能判断用户按下的是按键 A,我不就知道用户是想输入字母 A 嘛!“。非也非也,通过 WM_KEYDOWN 消息,我们只能判断用户按下了键盘上印有 A 那个按键,但具体用户是想输入大写字母 A 呢?还是小写字母 a,我们并不能直接判断出来。另外,对于非英语地区的语言,这按下按键 A,人家不一定是想输入字符 A。

 

看,这是咱邻国的键盘:

1

 

这是土豪国的键盘:

2

 

所以需要字符消息来告诉程序用户输入的到底是哪个字符。刚开始我们讲消息循环的时候,谈到 TranslateMessage 函数,说它的作用是翻译按键消息。其实它的作用就是将一些击键消息转换为字符消息,你可以简单地理解为就是将键盘扫描码转换为用户输入的字符。但你千万不要试图自己去实现这个函数,因为它实际上还需要考虑到国家/地区相关的键盘配置,很复杂滴。

 

…… 此处省略N多内容,具体请看视频讲解 ……

 

-【API档案】WM_CHAR 消息

-【API档案】WM_DEADCHAR 消息

-【API档案】WM_SYSCHAR 消息

-【API档案】WM_SYSDEADCHAR 消息

-【API档案】IsWindowUnicode

-【API档案】GetKeyNameText


为您推荐

报歉!评论已关闭.