Discussion:
Status von Alt folgen
(zu alt für eine Antwort)
Marcel Müller
2008-05-24 11:02:22 UTC
Permalink
Hallo,

ich habe eine Anwendung bei der ich bei gedrückter Alt-Taste bestimmte
Controls umfunktionieren möchte. Leider ist es mir nicht gelungen,
mitzubekommen, wann die Alt-Taste losgelassen wird. Ich bekomme zwar
eine WM_CHAR mit VK_ALT bzw. VK_ALTGRAF, wenn eine der Alt-Tasten
gedrückt wird, jedoch fehlt die entsprechende Meldung mit KC_KEYUP, wenn
selbige wieder losgelassen wird.
Gibt es da noch irgendeinen Trick, wie man an die Keyup-Message kommt?
Bei anderen Tasten wie Ctrl, Shift kommen beide Messages, nur bei Alt nicht.


Marcel
Marcel Müller
2008-06-15 07:28:24 UTC
Permalink
Post by Marcel Müller
ich habe eine Anwendung bei der ich bei gedrückter Alt-Taste bestimmte
Controls umfunktionieren möchte. Leider ist es mir nicht gelungen,
mitzubekommen, wann die Alt-Taste losgelassen wird. Ich bekomme zwar
eine WM_CHAR mit VK_ALT bzw. VK_ALTGRAF, wenn eine der Alt-Tasten
gedrückt wird, jedoch fehlt die entsprechende Meldung mit KC_KEYUP, wenn
selbige wieder losgelassen wird.
Gibt es da noch irgendeinen Trick, wie man an die Keyup-Message kommt?
Bei anderen Tasten wie Ctrl, Shift kommen beide Messages, nur bei Alt nicht.
Ich habe es gefunden. Die WM_CHAR-Message wird bei WM_TRANSLATEACCEL
aufgegessen. Ich habe einen entsprechenden Accelerator aber nicht
definiert und das Fenster hat eigentlich auch keine Frame-Controls.

Wie auch immer, jetzt überwache ich halt WM_TRANSLATEACCEL.


Btw: gibt es eigentlich eine Möglichkeit, den aktuellen Status der
Metatasten im PM explizit abzufragen?


Marcel
Lars Erdmann
2008-06-15 16:50:38 UTC
Permalink
Na logo. (WinGetKeyState(VK_ALT) & 0x8000) = TRUE heißt gedrückt,
andernfalls nicht.
Lars
Post by Marcel Müller
Post by Marcel Müller
ich habe eine Anwendung bei der ich bei gedrückter Alt-Taste bestimmte
Controls umfunktionieren möchte. Leider ist es mir nicht gelungen,
mitzubekommen, wann die Alt-Taste losgelassen wird. Ich bekomme zwar eine
WM_CHAR mit VK_ALT bzw. VK_ALTGRAF, wenn eine der Alt-Tasten gedrückt
wird, jedoch fehlt die entsprechende Meldung mit KC_KEYUP, wenn selbige
wieder losgelassen wird.
Gibt es da noch irgendeinen Trick, wie man an die Keyup-Message kommt?
Bei anderen Tasten wie Ctrl, Shift kommen beide Messages, nur bei Alt nicht.
Ich habe es gefunden. Die WM_CHAR-Message wird bei WM_TRANSLATEACCEL
aufgegessen. Ich habe einen entsprechenden Accelerator aber nicht
definiert und das Fenster hat eigentlich auch keine Frame-Controls.
Wie auch immer, jetzt überwache ich halt WM_TRANSLATEACCEL.
Btw: gibt es eigentlich eine Möglichkeit, den aktuellen Status der
Metatasten im PM explizit abzufragen?
Marcel
Marcel Müller
2008-06-15 21:42:55 UTC
Permalink
Post by Lars Erdmann
Na logo. (WinGetKeyState(VK_ALT) & 0x8000) = TRUE heißt gedrückt,
andernfalls nicht.
Danke! Die Funktion war mir nicht geläufig.
Eingebaut, funktioniert.

(WinGetKeyState(VK_ALT) & 0x8000) = TRUE
wird allerdings nicht funktionieren. Es war allerdings schon klar, was
gemeint ist.
!!(WinGetKeyState(HWND_DESKTOP, VK_ALT) & 0x8000)

Dass das eine Funktion des Desktop-Windows ist, ist mal wieder typisch OS/2.


Marcel

Loading...