WM_UNICHAR消息
应用程序可以使用WM_UNICHAR消息将输入发布到其他窗口。 此消息包含按下的键的字符代码。 (通过发送 wParam 设置为 UNICODE_NOCHAR.) 的消息来测试目标应用是否可以处理WM_UNICHAR消息
#define WM_UNICHAR 0x0109
参数
-
wParam
-
键的字符代码。
如果 wParamUNICODE_NOCHAR 并且应用程序处理此消息,则返回 TRUE。 DefWindowProc 函数将在默认) (返回 FALSE。
如果未UNICODE_NOCHARwParam,则返回 FALSE。 Unicode DefWindowProc 发布具有相同参数 的WM_CHAR 消息,ANSI DefWindowProc 函数发布一条 或两条 具有相应 ANSI 字符的WM_CHAR消息 () 。
-
lParam
-
重复计数、扫描代码、扩展键标志、上下文代码、以前的键状态标志和转换状态标志,如下表所示。
Bits 含义 0-15 当前消息的重复计数。 该值是由于用户按住键而自动重复击键的次数。 如果击键的保持时间足够长,则发送多个消息。 但是,重复计数不是累积的。 16-23 扫描代码。 该值取决于 OEM。 24 指示键是否为扩展键,例如显示在增强型 101 键或 102 键键盘上的右侧 Alt 和 Ctrl 键。 如果是扩展键,则值为 1;否则为 0。 25-28 保留;请勿使用。 29 上下文代码。 如果在按住 ALT 键的同时按该键,则值为 1;否则值为 0。 30 上一个键状态。 如果在发送消息之前键处于按下状态,则值为 1;如果键处于未按下状态,则值为 0。 31 转换状态。 如果释放了键,则值为 1;如果按下了键,则值为 0。 有关详细信息,请参阅 击键消息标志。
返回值
如果应用程序处理此消息,则应返回零。
备注
WM_UNICHAR消息类似于WM_CHAR,但它使用 Unicode 转换格式 (UTF) -32,而 WM_CHAR 使用 UTF-16。
此消息旨在将 Unicode 字符发送或发布到 ANSI 窗口,并且可以处理 Unicode 补充平面字符。
由于按下的键与生成的字符消息之间不一定有一对一的对应关系, 因此 lParam 参数的高序字中的信息通常对应用程序没有用处。 高序字中的信息仅适用于发布 WM_UNICHAR 消息之前的最新 WM_KEYDOWN 消息。
对于增强型 101 键和 102 键键盘,扩展键是键盘main部分的右 Alt 键和右侧 CTRL 键;数字小键盘左侧群集中的 INS、DEL、HOME、END、PAGE UP、PAGE Down 和箭头键;数字小键盘中的除号 (/) 和 ENTER 键。 其他一些键盘可能支持 lParam 参数中的扩展键位。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows XP [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
标头 |
|