首页 > 解决方案 > 如何将 vk 常量转换为文本?

问题描述

我正在尝试将 vk 常量(可能连接在一起)转换为它们的名称(例如,81 (VK_CONTROL|VK_SHIFT|VK_A) = “Control+Shift+A”。我尝试使用 GetKeyNameText 函数(使用 vk 和扫描码常量) ,但它似乎不起作用(字符串为空白,它返回 0,GetLastError 也返回 0)。

标签: cwinapi

解决方案


据我所知,目前还没有直接将组合虚拟键转换为文本的 API 函数。对于非字符键(VK_CONTROLVK_SHIFT等),您需要手动连接字符串。

对于字符键,MapVirtualKey对我来说很好。

我测试了您提供的代码:

UINT t = MapVirtualKey(VK_A, MAPVK_VK_TO_CHAR);

我可以得到它的返回值:

在此处输入图像描述


推荐阅读