Freigeben über


Visual FoxPro-Tastencodes (Aufbau der API-Bibliothek)

Die meisten Tasten der Tastatur behalten ihren Tastenwert bei, auch wenn sie mit unterschiedlichen Zusatztasten (UMSCHALTTASTE, STRG und ALT) kombiniert werden. Allen regulären Tasten der Tastatur (alphabetische Tasten und Sonderzeichen) ist ein Tastencode entsprechend ihrem ASCII-Wert zugeordnet.

Der Tastencode und die Werte der Zusatztasten werden in der EventRec-Struktur zurückgegeben. Der Tastencode kann in EventRec.message und der Wert der Zusatztaste in EventRec.modifiers gefunden werden.

Visual FoxPro interpretiert einige Tasten in Abhängigkeit von der Zusatztaste so, als hätten sie einen anderen Wert. Der Tastenkombination UMSCHALT+F10 entsprechen z. B. die folgenden Felder in EventRec:

  • EventRec.message = 15D (Hex)
  • EventRec.modifiers = 1000 (Hex)

In ähnlicher Weise sind der Tastenkombination STRG+F10 folgende EventRec-Werte zugeordnet:

  • EventRec.message = 167 (Hex)
  • EventRec.modifiers = 2000 (Hex)

Wenn eine Taste mit mehr als einer Zusatztaste kombiniert wird, werden die Werte der Zusatztasten addiert. Wenn Sie z. B. STRG+UMSCHALT+F10 drücken, werden die folgenden Werte zurückgegeben:

  • EventRec.message = 167 (Hex)
  • EventRec.modifiers = 3000 (Hex)

Der Wert in EventRec.modifiers beträgt im obigen Beispiel 0x3000, weil sowohl die Zusatztaste STRG als auch die UMSCHALTTASTE in die Tastenkombination einbezogen wurde. Daher wurde der Wert der UMSCHALTTASTE (0x1000) zum Wert der Zusatztaste STRG (0x2000) addiert, woraus sich der Wert 0x3000 ergibt.

Anmerkung   Bei der Interpretation von Tasten (insbesondere Zusatztasten) durch Visual FoxPro handelt es sich um ein inhärentes Merkmal von Visual FoxPro. Andere Programme interpretieren Tasten möglicherweise anders. Wenn eine Taste in Kombination mit einer oder mehreren Zusatztasten (UMSCHALTTASTE, STRG und ALT) gedrückt wird, repräsentiert das höherwertige Nibble (die oberen 4 Bits) die verwendete Zusatztaste.

Die folgende Tabelle zeigt, dass die F8-Taste unterschiedliche Tastencodes aufweist, je nachdem, welche Zusatztaste verwendet wird.

Gedrückte Taste Zusatztaste Tastenwert von F8
F8 Keine (None) \x142
UMSCHALTTASTE+F8 UMSCHALTTASTE \x15B
STRG+F8 STRG \x165
ALT+F8 ALT \x16F
Macintosh-Tastatur MS-DOS/Windows-Entsprechung
STRG
STRG+WAHLTASTE ALT

Jede Sondertaste, die mit Zusatztasten kombiniert werden kann, besitzt in Kombination mit jeder der Zusatztasten einen eindeutigen Wert. Wenn eine Sondertaste mit mehreren Zusatztasten kombiniert wird, ergibt sich für die Taste ein eindeutiger Wert, bezogen auf eine der Zusatztasten, und zwar entsprechend der folgenden Regeln:

  1. Prüfen Sie zunächst, ob die verwendete Tastenkombination ALT enthält; in diesem Fall wird der Haupttaste ihr ALT-Tastenwert zugeordnet.
  2. Wenn die Tastenkombination nicht ALT enthält, sollten Sie überprüfen, ob die Zusatztaste STRG verwendet wurde; in diesem Fall wird der Haupttaste ihr STRG-Tastenwert zugeordnet.
  3. Wenn die Zusatztaste ALT oder STRG nicht verwendet wurde, sollten Sie überprüfen, ob die UMSCHALTTASTE verwendet wurde; in diesem Fall wird der Haupttaste ihr UMSCHALTTASTEN-Wert zugeordnet.
  4. Wenn keine Zusatztaste verwendet wurde, wird der Haupttaste kein auf Zusatztasten beruhender Tastenwert zugeordnet.

Spezielle Tastencodes

In der folgenden Tabelle werden die Tastenwerte aufgelistet, die Visual FoxPro besonderen Tasten auf der Tastatur zuordnet:

Taste Tastencode Zusatztaste
LINKE MAUSTASTE 100 Keine (None)
F1 13B Keine (None)
F2 13C Keine (None)
F3 13D Keine (None)
F4 13E Keine (None)
F5 13F Keine (None)
F6 140 Keine (None)
F7 141 Keine (None)
F8 142 Keine (None)
F9 143 Keine (None)
F10 144 Keine (None)
POS1 147 Keine (None)
NACH-OBEN-TASTE 148 Keine (None)
BILD-AUF 149 Keine (None)
NACH-LINKS-TASTE 14B Keine (None)
NACH-RECHTS-TASTE 14D Keine (None)
ENDE 14F Keine (None)
NACH-UNTEN-TASTE 150 Keine (None)
BILD-AB 151 Keine (None)
EINFG 152 Keine (None)
ENTF 153 Keine (None)
F11 185 Keine (None)
F12 186 Keine (None)
BACKTAB 10F shiftKey
UMSCHALTTASTE+F1 154 shiftKey
UMSCHALTTASTE+F2 155 shiftKey
UMSCHALTTASTE+F3 156 shiftKey
UMSCHALTTASTE+F8 157 shiftKey
UMSCHALTTASTE+F5 158 shiftKey
UMSCHALTTASTE+F6 159 shiftKey
UMSCHALT+F7 15A shiftKey
UMSCHALTTASTE+F8 15B shiftKey
UMSCHALTTASTE+F9 15C shiftKey
UMSCHALTTASTE+F10 15D shiftKey
UMSCHALTTASTE+F11 187 shiftKey
UMSCHALTTASTE+F12 188 shiftKey
STRG+A 001 ctrlKey
STRG+B 002 ctrlKey
STRG+C 003 ctrlKey
STRG+D 004 ctrlKey
STRG+E 005 ctrlKey
STRG+F 006 ctrlKey
STRG+G 007 ctrlKey
STRG+H 008 ctrlKey
STRG+I 009 ctrlKey
STRG+EINGABETASTE 00A ctrlKey
STRG+J 00A ctrlKey
STRG+K 00B ctrlKey
STRG+L 00C ctrlKey
STRG+M 00D ctrlKey
STRG+N 00E ctrlKey
STRG+O 00F ctrlKey
STRG+P 010 ctrlKey
STRG+Q 011 ctrlKey
STRG+R 012 ctrlKey
STRG+S 013 ctrlKey
STRG+T 014 ctrlKey
STRG+U 015 ctrlKey
STRG+V 016 ctrlKey
STRG+W 017 ctrlKey
STRG+X 018 ctrlKey
STRG+Y 019 ctrlKey
STRG+Z 01A ctrlKey
STRG+LINKE KLAMMER 01B ctrlKey
STRG+UMGEKEHRTER SCHRÄGSTRICH 01C ctrlKey
STRG+RECHTE KLAMMER 01D ctrlKey
STRG+CARETZEICHEN 01E ctrlKey+shiftKey
STRG+BINDESTRICH 01F ctrlKey
STRG+LEERTASTE 020 ctrlKey
STRG+F1 15E ctrlKey
STRG+F2 15F ctrlKey
STRG+F3 160 ctrlKey
STRG+F4 161 ctrlKey
STRG+F5 162 ctrlKey
STRG+F6 163 ctrlKey
STRG+F7 164 ctrlKey
STRG+F8 165 ctrlKey
STRG+F9 166 ctrlKey
STRG+F10 167 ctrlKey
STRG+NACH-LINKS-TASTE 173 ctrlKey
STRG+NACH-RECHTS-TASTE 174 ctrlKey
STRG+ENDE 175 ctrlKey
STRG+BILD-AB 176 ctrlKey
STRG+POS1 177 ctrlKey
STRG+BILD-AUF 184 ctrlKey
STRG+F11 189 ctrlKey
STRG+F12 18A ctrlKey
STRG+NACH-OBEN-TASTE 18D ctrlKey
STRG+NACH-UNTEN-TASTE 191 ctrlKey
STRG+EINFG 192 ctrlKey
STRG+ENTF 193 ctrlKey
STRG+TAB 194 ctrlKey
ALT+Q 110 altKey
ALT+W 111 altKey
ALT+E 112 altKey
ALT+R 113 altKey
ALT+T 114 altKey
ALT+Y 115 altKey
ALT+U 116 altKey
ALT+I 117 altKey
ALT+O 118 altKey
ALT+P 119 altKey
ALT+A 11E altKey
ALT+S 11F altKey
ALT+D 120 altKey
ALT+F 121 altKey
ALT+G 122 altKey
ALT+H 123 altKey
ALT+J 124 altKey
ALT+K 125 altKey
ALT+L 126 altKey
ALT+Z 12C altKey
ALT+X 12D altKey
ALT+C 12E altKey
ALT+V 12F altKey
ALT+B 130 altKey
ALT+N 131 altKey
ALT+M 132 altKey
ALT+F1 168 altKey
ALT+F2 169 altKey
ALT+F3 16A altKey
ALT+F4 16B altKey
ALT+F5 16C altKey
ALT+F6 16D altKey
ALT+F7 16E altKey
ALT+F8 16F altKey
ALT+F9 170 altKey
ALT+F10 171 altKey
ALT+1 178 altKey
ALT+2 179 altKey
ALT+3 17A altKey
ALT+4 17B altKey
ALT+5 17C altKey
ALT+6 17D altKey
ALT+7 17E altKey
ALT+8 17F altKey
ALT+9 180 altKey
ALT+0 181 altKey
ALT+F11 18B altKey
ALT+F12 18C altKey
ALT+POS1 197 altKey
ALT+NACH-OBEN-TASTE 198 altKey
ALT+BILD-AUF 199 altKey
ALT+NACH-LINKS-TASTE 19B altKey
ALT+NACH-RECHTS-TASTE 19D altKey
ALT+ENDE 19F altKey
ALT+NACH-UNTEN-TASTE 1A0 altKey
ALT+BILD-AB 1A1 altKey
ALT+EINFG 1A2 altKey
ALT+ENTF 1A3 altKey

Beispiel

FAR EventHandler(WHandle theWindow, EventRec FAR *ev) 
{
switch(ev->what)
{
case keyDownEvent:                  /* Check the keyDownEvent */
if (ev->modifiers & shiftCodeMask)      /* A modifier was pressed. */
{
if (ev->modifiers & altKey)            /* Check for the ALT Key */
_PutStr("ALT Key Code should be used.\n"); 
else
if (ev->modifiers & ctrlKey)         /* CTRL Key */
_PutStr("CTRL Key Code should be used.\n");
else
if (ev->modifiers & shiftKey)         /* SHIFT Key */
_PutStr("SHIFT Key Code should be used.\n");
}
else
_PutStr("Regular Key Code should be used.\n"); 
return NO;                        /* Let Visual FoxPro have Key also */ 
break;
default:
return NO;
}
}

Anmerkung   shiftCodeMask, altKey, ctrlKey und shiftKey werden in PRO_EXT.H und PRO_EXT.INC sämtlich wie folgt definiert:

  • #define shiftCodeMask 0xf000
  • #define shiftKey 0x1000
  • #define ctrlKey 0x2000
  • #define altKey 0x4000

Siehe auch

Routinen der API-Bibliothek von A-Z | Routinen nach Kategorien der API-Bibliothek | _PutStr( ), API-Bibliotheksroutine | _ASCIICOLS-Systemvariable | _ASCIIROWS-Systemvariable | Visual FoxPro-Systemereignisse (Aufbau der API-Bibliothek) | KeyPress-Ereignis