_InKey( ), API-Bibliotheksroutine
Gibt die erste während der timeout-Periode gedrückte Taste zurück.
int _InKey(int timeout, int flag)
int timeout; /* Timeout period. */
int flag; /* Option(s). */
Hinweise
Die timeout-Periode wird als eine Anzahl von Zeitgeberticks vom Betriebssystem (1000/Sekunde) angegeben. Eine Timeout (Zeitüberschreitung)-Periode von 0 veranlasst Visual FoxPro zu warten, bis eine Taste gedrückt wird. Ein negativer Zeitüberschreitungswert sorgt dafür, dass _InKey( ) sofort zum aufrufenden Programm zurückkehrt, wenn keine Taste gedrückt wird.
Sie können flag mit einer oder beiden der folgenden Optionen angeben:
- SHOWCURSOR oder HIDECURSOR
- MOUSEACTIVE
Mit Hilfe von SHOWCURSOR können Sie den Cursor einblenden. Mit Hilfe von HIDECURSOR können Sie den Cursor ausblenden. Ohne Angabe verhält sich der Cursor entsprechend der SYS(2002)-Einstellung. Der zusätzliche Attributwert MOUSEACTIVE bewirkt, dass _InKey( ) Mausklicks als Tastenanschläge behandelt. _InKey gibt 151 für einen Mausklick zurück. Wenn Sie zwei Attributwerte spezifizieren möchten, verwenden Sie den C-Operator | oder den +-Operator.
Anmerkung Leerlaufroutinen dürfen _InKey( ) nicht aufrufen.
Sie können Ereignisbehandlungsroutinen schreiben, die _InKey( ) aufrufen. Dabei sollten Sie jedoch vorsichtig vorgehen, da _InKey( ) die Ereignisbehandlungsroutinen rekursiv aufruft.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird _InKey( ) von Visual FoxPro mit zwei Attributen aufgerufen.
Visual FoxPro-Code
SET LIBRARY TO INKEY
#define SHOWCURSOR 1
#define HIDECURSOR 2
#define MOUSEACTIVE 4
= XINKEY(0, SHOWCURSOR + MOUSEACTIVE)
C-Code
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
_RetInt(_InKey((int) parm->p[0].val.ev_long,
(int) parm->p[1].val.ev_long), 10);
}
FoxInfo myFoxInfo[] = {
{"XINKEY", (FPFI) Example, 2, "I,I"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
INKEY( )-Funktion | Zugreifen auf die Visual FoxPro-API | ReadTimeout-Eigenschaft