Cóż, this to duża lista kodów kluczy wirtualnych.
CTRL-S ma być wysłany przez jako 2 WM_KEYDOWN
wiadomości - wiadomość, gdy zostanie naciśnięty klawisz Ctrl (VK_LCONTROL
lub VK_RCONTROL
), a następnie przez 0x53
dla klucza „S”.
Zamiast przetwarzać oba komunikaty, poczekaj na wiadomość o naciśnięciu klawisza dla przycisku "S", a następnie zadzwoń pod numer GetKeyState, używając magicznej wartości VK_CONTROL (sprawdź, czy należy testować osobno dla lewego i prawego klawisza sterującego), aby sprawdzić, czy S został naciśnięty przy wciśniętym CTRL.
-
Oczywiście, wiadomości klawiatury są przesyłane bezpośrednio do okna, które ma ostrości. Aby uzyskać kombinacje akceleratorów do pracy w zakresie aplikacji, musisz sprawdzić komunikaty przed ich wysłaniem do okna aktywności - tj. Do pompy komunikatów. Zobacz dokumentację dla TranslateAccelerator.
Jeśli chcesz obsługiwać klawisze o szerokości całego systemu, druga odpowiedź wskazuje na skrót klawiszowy APi.
Co mogę zrobić, to inna kontrola poza hWnd ma ostrości? – jmasterx
Aby obsłużyć szeroką aplikację Ctrl-X, używałbyś api akceleratora. Systemwide - skrót klawiaturowy. –