_InKey( ) (Rutina de biblioteca API)

Devuelve la primera tecla presionada durante el período timeout.

int _InKey(int timeout, int flag)
int timeout;                  /* Timeout period. */
int flag;                     /* Option(s). */

Observaciones

El período timeout se especifica como un número de pulsaciones del cronómetro del sistema operativo (1000/segundo). Un período de espera de 0 hace que Visual FoxPro espere hasta que se presione una tecla. Un período de espera negativo hace que _InKey( ) vuelva inmediatamente al programa que realiza la llamada si el usuario no presiona una tecla.

Puede especificar flag como una de estas opciones o como ambas:

  • SHOWCURSOR o HIDECURSOR
  • MOUSEACTIVE

Utilice SHOWCURSOR para hacer que aparezca el cursor o HIDECURSOR para hacer que desaparezca. Si no especifica ninguno de los dos, el cursor respetará el valor de SYS(2002). El valor del indicador adicional MOUSEACTIVE hace que _InKey( ) trate los clics del mouse (ratón) como pulsaciones de tecla. _InKey devuelve 151 para un clic del mouse. Para especificar dos valores de indicador, utilice los operadores C | o +.

Nota   Las rutinas inactivas no deben llamar a _InKey( ).

Puede escribir controladores de eventos que llamen a _InKey( ), pero deberá tener cuidado, ya que _InKey( ) llama a los controladores de eventos de forma recursiva.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El ejemplo siguiente llama a _InKey( ) desde Visual FoxPro con dos indicadores.

Código Visual FoxPro

SET LIBRARY TO INKEY
#define SHOWCURSOR   1
#define HIDECURSOR   2
#define MOUSEACTIVE 4
= XINKEY(0, SHOWCURSOR + MOUSEACTIVE)

Código C

#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
};

Vea también

INKEY( ) (Función) | Acceso a la API de Visual FoxPro | ReadTimeout (Propiedad)