Share via


_ActivateHandler( ) (Rutina de biblioteca API)

Agrega un controlador de función al final de la lista de controladores de eventos.

unsigned int _ActivateHandler(FPFI handler)
FPFI handler               /* Event handler to be added. */

Observaciones

_ActivateHandler( ) devuelve un entero que identifica al controlador. Utilice este identificador para quitar el controlador de la lista de procesadores de eventos con _DeActivateHandler( ).

El controlador se invoca con dos parámetros: el parámetro WHANDLE de la ventana a que pertenece el evento y un puntero FAR (32 bits) que apunta a un registro de evento. Si su controlador no busca o modifica un evento para los controladores de eventos subsiguientes, devuelve falso (0) para indicar que el evento debe pasarse aún a los otros controladores o a las rutinas de interfaz de Visual FoxPro. Si el controlador determina que el evento no necesita transferirse, devuelve verdadero (un entero distinto de 0) para indicar que el evento se ha controlado.

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 activa un controlador de eventos cuando se carga la biblioteca. El controlador de eventos imprime un mensaje para cada evento y permite a Visual FoxPro procesar el evento como lo hace normalmente. El controlador de eventos se desactiva cuando se descarga la biblioteca.

Código Visual FoxPro

SET LIBRARY TO ACTIHAND
WAIT WINDOW TO m.test TIMEOUT 5
SET LIBRARY TO

Código C

#include <pro_ext.h>

static int HandlerID;

//   This is the routine that is registered as an event handler.
FAR EventHandler(WHandle theWindow, EventRec FAR *ev)
{
   _PutStr("\nEventHandler() called.");
   return NO;   // event still needs to be handled by Visual FoxPro
}

FAR Activate()
{
   HandlerID = _ActivateHandler(EventHandler);
}

//   When the library is unloaded we must deactivate the event handler
//   in a CALLONUNLOAD function.
FAR DeActivate()
{
   _DeActivateHandler(HandlerID);
}

FoxInfo myFoxInfo[] = {
   {"ACTIVATE",  Activate,   CALLONLOAD, ""},
   {"DEACTIVATE", DeActivate, CALLONUNLOAD, ""}
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Vea también

_DeActivateHandler( ) (Rutina de biblioteca API) | _FindWindow( ) (Rutina de biblioteca API) | _GlobalToLocal( ) (Rutina de biblioteca API) | _MousePos( ) (Rutina de biblioteca API) | Controladores de eventos | EventHandler( ) (Función)