Welche Taste wurde gedrückt?
-
Hallo,
ich habe ein Problem und zwar habe ich ein Eingabefeld nun möchte ich wenn jemand z.B die Numpad 5 Taste drückt im Eingabefeld KP_5 steht oder wenn ich ich die Numpad 2 Taste drücke dort steht KP_downarrow etc...
Wie kann ich das bewerkstelligen?
Falls mit DirectInput könntet ihr mir kurz den Code dafür geben da ich mich nicht extra damit befassen möchte (SDK habe ich drauf)Mfg Patrick K.
-
hi,
KP_5 ist sicher eine konstante mit irgendeiner abart von int als datentyp.
d.h., du könntest ein string-array (key_name) erstellen, und den wert von key_name[KP_5] auf "KP_5" setzen. key_name muss natürlich groß genug sein.
das kann allerdings etwas ins auge gehen, wenn die tastennummerierung nicht bei 0 sondern (übersichtshalber) bei 0x1237 anfängt. dann hast du umsonst speicherplatz verschwendet.
in diesem fall könntest du eine std::map<int, std::string> nehmen, das sollte aber die zugriffszeit etwas erhöhen; egal, ist ja nicht zeitkritisch was du machst.std::map<int, std::string> key_name; key_name[KP_5] = "Numpad; die Taste mit dem kleinen Huppel in der Mitte"; std::cout << key_name[KP_5]aber bevor du jetzt alle tastenbezeichnungen abtippen musst, solltest du in der dx-doku nachschauen, ob es nicht bereits ein solches array/eine funktion, die diesen zweck erfüllt, gibt.