gpt4 book ai didi

c++ - Win32 鼠标和键盘组合

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:54 26 4
gpt4 key购买 nike

我需要在 Win32 中组合鼠标和键盘事件,例如 Click+ShiftClick+Alt +Shift

例如(伪代码):

case WM_LBUTTONDOWN:

if (Shift)
//click+Shift
if (Shift && Ctrl)
//click+Shift+Ctrl
if (Shift && Alt)
//click+Shift+Alt
break;

我知道 herehere 的所有必要参数。

但我不知道如何正确组合它们。

最佳答案

假设这是在您的 winproc 中:

if(wParam & MK_SHIFT)
{
if (wParam & MK_CONTROL && wParam & MK_SHIFT)
{
//click+Shift+Ctrl
}
else if(wParam & MK_SHIFT && HIBYTE(GetKeyState(VK_MENU)) & 0x80)
{
//alt+shift
}
else
{
//just shift
}
}

Shift 和 click 和 alt 有点棘手,你必须使用不同的方式

为什么会这样?您会从 WM_LBUTTONDOWN 页面注意到,对于发送的每个信号,您都有给定的参数。其中之一是 wparam。根据是否按下某些特殊键,它可以有不同的值

并且由于 WM_LBUTTONDOWN 信号的 wparam 不包含有关 alt 按钮的信息,您将不得不使用 GetKeyState 函数,如果按键按下则返回高位值 1,否则返回任何其他值。

关于c++ - Win32 鼠标和键盘组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205534/

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