代码之家  ›  专栏  ›  技术社区  ›  Ritsaert Hornstra

在wm_keydown中获取unicode字符

  •  1
  • Ritsaert Hornstra  · 技术社区  · 14 年前

    在一个需要以不同方式处理很多键的应用程序中,我希望处理wm_keydown中的所有情况,而不使用wm_char。是否可以从wm_keydown提供的虚拟密钥序列中获得正确的ascii/unicode字符,而不是依赖于更常规的translatemsg/wm_字符?

    例如:应用程序应该能够以完全不同于按常规的ctrl-b键的方式处理shift-b。

    使用mapvirtualkey,您不使用shift、control和alt键的状态,或者至少不使用我能看到的状态。

    正如利奥·戴维森所回答的:您可以使用to unicode调用自己执行vk->unicode转换。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Leo Davidson    14 年前

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

    如果要处理Unicode字符,请处理 WM_CHAR (16位Unicode字符,假设窗口本身是Unicode)或 WM_UNICHAR (32位Unicode字符)。

    编辑:如果要自己进行转换,请使用 ToUnicode 应用程序编程接口。