原文链接 -> 传送门
消息含义:
当一条 WM_KEYUP 消息被 TranslateMessage 函数翻译时,WM_DEADCHAR 消息会被传送到具有键盘焦点的窗口。WM_DEADCHAR 指定了由死键产生的字符编码。一个死键是一个能生成类似于变音(双点),并于其它字符组合一个混合字符的键。例如,变音 O 字符 (Ö) 是通过按下该变音字符的死键,然后按下 O 键产生的。
消息定义:
#define WM_DEADCHAR 0x0103
参数解析:
wParam:死键产生的字符编码。
lParam:指定重复计数、OEM 扫描码、扩展键标记、内容代码、先前状态和转换状态,具体含义和表示方法如下:
|
位 |
含义 |
|
0-15 |
1. 当前消息被重复的次数 |
|
16-23 |
OEM 扫描码(键盘硬件产生的代码) |
|
24 |
1. 指定该按键是否扩展键 |
|
25-28 |
系统保留 |
|
29 |
内容代码:对于 WM_KEYDOWN 消息来说,这个值总是 0 |
|
30 |
先前状态:在消息发送前如果按键是被按下的话该值是 1,否则是 0 |
|
31 |
转换状态:对于 WM_KEYDOWN 消息来说,这个值总是 0 |
怕你看不懂给你画个表:
返回值:
如果窗口过程响应该消息,必须返回 0。
备注:
1. WM_DEADCHAR 消息通常被应用程序用来给用户的有关每个按键的反馈。例如,应用程序可以在当前字符位置中显示音调而不用移动插入符。
2. 因为在按键与产生的字符消息之间不需要一对一的对应的关系,所以在 lParam 参数高位字的信息通常对应用程序来说没有用。在高位字中的信息仅应用于在发送 WM_DEADCHAR 消息之前最近的 WM_KEYDOWN 消息。
3. 对于增强型 101 和 102 键键盘,扩展键是在键盘主要部分的右 ALT 和右 CTRL 键;集中在左边数字键盘的 INS,DEL, HOME, END, PAGE UP, PAGE DOWN 和方向键;在数字键盘上的除号(/)和回车键。一些其他的键盘也可能支持 lParam 参数中的扩展键位。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |




