c ++ - Как определить, удерживается ли средняя кнопка?

Dec 03 2020

Можно ли определить, удерживается ли средняя кнопка в c ++? Я видел этот вопрос, но в нем ничего не упоминалось о прослушивании кнопок, кроме левой кнопки мыши.

я хочу

int main(){
    while (1){
        while((GetKeyState(VK_LBUTTON) & 0x100) != 0){
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            Sleep(10);
        }
    }
    return 0;
}

но вместо срабатывания при нажатии левой кнопки, срабатывание при нажатии средней кнопки.

Ответы

Yunnosch Dec 29 2020 at 09:51

Вы конкретно спрашиваете, как что-то сделать для средней кнопки мыши, что вы нашли объяснение только для левой кнопки мыши. (По крайней мере, вы это сильно подчеркиваете, хотя я не понимаю, как применим показанный код ....)

Поэтому при поиске MOUSEEVENTF_LEFTDOWNи VK_LBUTTONя обнаружил , что , например , здесь, они перечислены среди очень многообещающих братьев и сестер, особенно MOUSEEVENTF_MIDDLEDOWNи VK_MBUTTON.

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

Поскольку вы спрашиваете только о разнице между левым и средним, вам следует установить эту информацию.