Windows 在WM_KEYDOWN中获取Unicode字符

Windows 在WM_KEYDOWN中获取Unicode字符,windows,keyboard,winapi,Windows,Keyboard,Winapi,在一个需要以不同方式处理许多键的应用程序中,我希望在WM_KEYDOWN中处理所有情况,而不使用WM_CHAR。是否有可能从WM_KEYDOWN提供的虚拟键序列中获得正确的ASCII/UNICODE字符,而不是依赖更规则的TranslateMsg/WM_字符 例如:应用程序应该能够以与按CTRL-B的常规B完全不同的方式处理Shift-B 使用MapVirtualKey,您不会使用Shift、Control和Alt键的状态,或者至少不会使用我看到的状态 正如利奥·戴维森(Leo Davidson

在一个需要以不同方式处理许多键的应用程序中,我希望在WM_KEYDOWN中处理所有情况,而不使用WM_CHAR。是否有可能从WM_KEYDOWN提供的虚拟键序列中获得正确的ASCII/UNICODE字符,而不是依赖更规则的TranslateMsg/WM_字符

例如:应用程序应该能够以与按CTRL-B的常规B完全不同的方式处理Shift-B

使用MapVirtualKey,您不会使用Shift、Control和Alt键的状态,或者至少不会使用我看到的状态

正如利奥·戴维森(Leo Davidson)回答的那样:您可以使用ToUnicode调用自己执行VK->Unicode转换。

处理字符代码,这基本上意味着键盘上的物理键

如果要处理unicode字符,请改为处理(16位unicode字符,假设窗口本身是unicode)或(32位unicode字符)

编辑:如果您想自己进行转换,请使用API。

处理字符代码,基本上是指键盘上的物理键

如果要处理unicode字符,请改为处理(16位unicode字符,假设窗口本身是unicode)或(32位unicode字符)


编辑:如果您想自己进行转换,请使用API。

我知道这一点。我问了一个问题,看看发送WM_字符的TranslateMsg的逻辑是否也可以使用另一个不使用windows消息的路径(如API调用)获得。这看起来很有希望:将直接尝试!每天学习一个新的WinAPI调用……我知道这一点。我问了一个问题,看看发送WM_字符的TranslateMsg的逻辑是否也可以使用另一个不使用windows消息的路径(如API调用)获得。这看起来很有希望:将直接尝试!每天学习一个新的WinAPI调用。。