gpt4 book ai didi

c++ - 从 WM_KEYDOWN 消息中检测非字符按下

转载 作者:行者123 更新时间:2023-11-30 04:33:39 42 4
gpt4 key购买 nike

win32 中是否有一个函数可以获取 CTRL、ALT 或大写锁定键的虚拟键代码并返回一个字符串“CTRL”、“ALT”、“CAPSLOCK”?

我只能接收 WM_KEYDOWN 消息,不能接收 WM_CHAR 消息。我知道我可以通过将虚拟键代码传递给函数 ToUnicode() 来确定按下了哪个字符键,它会告诉我按下了哪个字符键。

但如果我传递 CTRL 虚拟键代码,该函数将不返回任何内容。

char keyPressed[256];
KBDLLHOOKSTRUCT kbdStruct = *((KBDLLHOOKSTRUCT*)lParam);
GetKeyboardState((PBYTE)&keyState);
ToUnicode(kbdStruct.vkCode, kbdStruct.scanCode, (PBYTE)&keyState, (LPWSTR)&keyPressed, sizeof(keyPressed) / 2, 0);
// so if the key pressed was 'a' then keyPressed = "a";
// & if the key pressed was CTRL then keyPressed = "CTRL";

最佳答案

您可以将 WM_KEYDOWN 中的 lParam 值传递给 GetKeyNameText它将为您返回 key 名称。

关于c++ - 从 WM_KEYDOWN 消息中检测非字符按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644313/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com