Accelerators: virtual key code / character code
-
Hi!
Ich habe eine Frage zu Accelerators.
Wenn man beim Füllen der ACCEL-Struktur das Flag FVIRTKEY angibt, wird die key-Membervariable als virtual key code interpretiert, ansonsten als character code.
FVIRTKEY
The key member specifies a virtual-key code. If this flag is not specified, key is assumed to specify a character code.Wenn ich jetzt 'A' bzw. 65 als key angebe und FVIRTKEY setze, funktioniert alles bestens.
Meine Frage: Wie sieht das jetzt als character code aus? Wie ist der character code der Taste "A"?
Matthias
-
Matthias- schrieb:
Meine Frage: Wie sieht das jetzt als character code aus? Wie ist der character code der Taste "A"?
UINT uCharacterCode = LOWORD(MapVirtualKey('A', 2));
-
Hoi,
mit der Funktion hatte ich auch schon rumgespielt, aber nicht das richtige herausbekommen. Wenn ich es so ausprobiere, wie du es vorschlägst ist uCharacterCode 65, also der ASCII-Wert von A. Da kann ich ja direkt 'A' schreiben.
Aber ich habe es mittlerweile herausgefunden. Ich muss einfach die ASCII-Werte für die Kleinbuchstaben benutzen. Also 97 (a) bis 122 (z).
cu,
Matthias
-
Matthias- schrieb:
mit der Funktion hatte ich auch schon rumgespielt, aber nicht das richtige herausbekommen. Wenn ich es so ausprobiere, wie du es vorschlägst ist uCharacterCode 65, also der ASCII-Wert von A. Da kann ich ja direkt 'A' schreiben.
Ja, und? Das ist doch völlig richtig so. Ein kleiner Blick in winuser.h offenbart:
#define VK_HELP 0x2F /* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */ #define VK_LWIN 0x5B
Aber ich habe es mittlerweile herausgefunden. Ich muss einfach die ASCII-Werte für die Kleinbuchstaben benutzen. Also 97 (a) bis 122 (z).
Na gut, wenn Du das mußt ...
-
Ja, stimmt schon, eigentlich hast du recht.
Das Problem war nur, dass wenn ich 'A' (65) benutze die Shift-Taste gedrückt sein muss um den Accelerator auszulösen. Das habe ich aber erst später bemerkt, sonst wäre ich natürlich direkt auf die Sache mit den Kleinbuchstaben gekommen.
Herzlichen Dank.
cu,
Matthias