我尝试使用WM_SYSKEYDOWN和WM_SYSKEYUP进行键盘输入。
这是重要的代码部分。
case WM_SYSKEYDOWN:
if (wParam == VK_MENU) // VK_MENU = 18 = alt keys
{
if (!(lParam & (1 << 30)))
{
std::cout << "Pressed left alt key" << std::endl;
}
};
break;
case WM_SYSKEYUP:
if (wParam == VK_MENU) // VK_MENU = 18 = alt keys
{
std::cout << "Released left alt key" << std::endl;
};
break;
如果我按下按钮,我试图打印一个字符串,并在释放按键时打印另一个字符串。
发布有效,但按下只需按一次<2>按。
if (!(lParam & (1 << 30)))
此行应该经常中断频繁发布字符串。
我不明白为什么......,但我希望能做到。
提前致谢!
答案 0 :(得分:0)
我没有使用我找到的这个功能。
if (GetAsyncKeyState(VK_LSHIFT) & 0x8000)
{
// Button pressed!
}
效果很好:D