Guybrush Threepwood Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 Ich will in einem Programm das Verhalten bei verschiedenen Tastendrücken in PreTranslateMessage abändern. Dazu prüfe ich halt wParam das ja bei WM_KEYDOWN den virtual-key code enthält. Das Problem ist aber das sich da Codes irgendwie überschneiden. Ich will zum einen auf die Pfeiltasten reagieren können (VK_RIGHT, VK_DOWN usw) und zum anderen auf alle Sonderzeichen über den Tasten von 1 bis 8. Also vom Ausrufezeichen bis zur Klammer auf. Dabei scheinen aber das % und VK_LEFT beides für die 37 zu stehen. Das selbe Problem ist bei 2 anderen Pfeiltasten. Wie kann das sein? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 Also bei mir ist VK_DOWN 28... welchen VK hast du für % genommen ? Edit: VK_7 37 7 key ???? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 Also ich habe auf meiner Tastatur keine %-Taste. Ich habe nur eine 5-Taste, und wenn ich dazu Shift drücke, bekomme ich ein %. Die Keykodes stehen für Tasten, nicht für Zeichen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. April 2006 Autor Teilen Geschrieben 7. April 2006 naja hab das witch folgendermaßen aufgebaut: switch((int)pMsg->wParam) { case VK_UP: ... case VK_DOWN: ... case '%': ... usw. } [/PHP] und bei allen anderen Tasten außer diesen 3 wo sich das überschneidet funktioniert das :\ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 break vergessen ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. April 2006 Autor Teilen Geschrieben 7. April 2006 nein, es geht nicht um das was im case passiert sondern um das case selber Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 Vielleicht war ich eben nicht deutlich genug: Es gibt keinen Keycode für %, denn es gibt keine %-Taste. Dafür gibt es einen Keycode für die linke Shifttaste, obwohl die für sich allein kein Zeichen erzeugt. Wenn du Zeichen erkennen willst, die über Zusatzfunktionen der Tasten wie z.B. Shift erzeugt werden, musst du den Status der Zusatztaste überwachen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 Vielleicht war ich eben nicht deutlich genug: Es gibt keinen Keycode für %, denn es gibt keine %-Taste. Dafür gibt es einen Keycode für die linke Shifttaste, obwohl die für sich allein kein Zeichen erzeugt. Wenn du Zeichen erkennen willst, die über Zusatzfunktionen der Tasten wie z.B. Shift erzeugt werden, musst du den Status der Zusatztaste überwachen. Also "VK_SHIFT & VK_5" ? oder gibt es sowas wie bool ShiftisDown() ? aber was ist dann bei dir VK_DOLLAR ? (widerspricht ja deiner Logik) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 7. April 2006 Teilen Geschrieben 7. April 2006 Also "VK_SHIFT & VK_5" ?Nein. Bitweise Und schon mal gar nicht. Außerdem liefert WM_KEYDOWN immer nur eine Taste, selbst wenn du es schaffen würdest, beide Tasten gleichzeitig zu drücken. oder gibt es sowas wie bool ShiftisDown() ?Es gibt GetAsyncKeyState. Man kann auch einfach den Zustand der Shift-Taste nachverfolgen, die löst ja auch Key-Nachrichten aus. aber was ist dann bei dir VK_DOLLAR ? (widerspricht ja deiner Logik)Bei mir gibt's kein VK_DOLLAR. Was soll das sein? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. April 2006 Autor Teilen Geschrieben 7. April 2006 Vielleicht war ich eben nicht deutlich genug: Es gibt keinen Keycode für %, denn es gibt keine %-Taste. Dafür gibt es einen Keycode für die linke Shifttaste, obwohl die für sich allein kein Zeichen erzeugt. Wenn du Zeichen erkennen willst, die über Zusatzfunktionen der Tasten wie z.B. Shift erzeugt werden, musst du den Status der Zusatztaste überwachen. hmm ja stimmt, mit leerem Magen kann ich nicht denken. Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 10. April 2006 Teilen Geschrieben 10. April 2006 Bei mir gibt's kein VK_DOLLAR. Was soll das sein? oops, sorry ... war an Java... dachte das gibts in C++ auch - hab ich wohl verwechselt :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Anybody Geschrieben 10. April 2006 Teilen Geschrieben 10. April 2006 Nimm in dem Case den Wert für die Taste 5 und frag bei GetKeyState(VK_SHIFT). Diese sagt dir dann ob shift gedrückt ist oder nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.