Share via


_FindWindow( ) (Rutina de biblioteca API)

Devuelve en el parámetro wh el controlador de la ventana a la que pertenece el punto pt en la pantalla.

int _FindWindow(WHANDLE FAR *wh, Point pt)
WHANDLE FAR *wh;      /* Pointer to window handle. */
Point pt;                     /* Point. */

Observaciones

_FindWindow( ) devuelve un entero que indica la parte de la ventana donde está situado el punto. Por ejemplo, _FindWindow( ) devuelve el valor inContent si el punto está dentro de la ventana.

En la siguiente tabla se enumeran posibles valores de retorno, tal como se definen en PRO_EXT.H.

Valores de retorno de _FindWindow( )

Valor Ubicación del punto
inBorder En el borde de la ventana.
inHelp En el área de Ayuda.
inContent En el área de contenido y texto.
inDrag En la barra de título.
inGrow En el control de tamaño.
inGoAway En el cuadro de cierre.
inZoom En el control de zoom.
inVUpArrow En la flecha arriba de la barra de desplazamiento vertical.
inVDownArrow En la flecha abajo de la barra de desplazamiento vertical.
inVPageUp En el área de página arriba de la barra de desplazamiento vertical.
inVPageDown En el área de página abajo de la barra de desplazamiento vertical.
inVThumb En el cuadro de la barra de desplazamiento vertical.
inHUpArrow En la flecha derecha de la barra de desplazamiento horizontal.
inHDownArrow En la flecha izquierda de la barra de desplazamiento horizontal.
inHPageUp En el área de página a la derecha de la barra de desplazamiento horizontal.
inHPageDown En el área de página a la izquierda de la barra de desplazamiento horizontal.
inHThumb En el cuadro de la barra de desplazamiento horizontal.
inMenuBar En la barra de menús.

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 siguiente ejemplo espera un clic en el botón primario del mouse (ratón) y, luego, utiliza _FindWindow( ) para obtener el controlador de ventana correspondiente a la posición en que se hizo clic con el mouse.

Código Visual FoxPro

WAIT WINDOW  "Click mouse on a window" NOWAIT
SET LIBRARY TO FINDWIND

Código C

#include <pro_ext.h>

void putLong(long n, int width)
{
   Value val;

   val.ev_type = 'I';
   val.ev_long = n;
   val.ev_width = width;

   _PutValue(&val);
}
FAR FindWindowFn(ParamBlk FAR *parm)
{
   WHANDLE wh;
   Point mousePos;
   int where;

//  Get mouse position when left button goes down
   while (_InKey(0, MOUSEACTIVE | HIDECURSOR) != 151);
   while (!_MousePos(&mousePos));

   switch (where = _FindWindow(&wh, mousePos))
   {
      case inBorder:
         _PutStr("\nMouse down inBorder"); break;
      case inHelp:
         _PutStr("\nMouse down inHelp"); break;
      case inContent:
         _PutStr("\nMouse down inContent"); break;
      case inDrag:
         _PutStr("\nMouse down inDrag"); break;
      case inGrow:
         _PutStr("\nMouse down inGrow"); break;
      case inGoAway:
         _PutStr("\nMouse down inGoAway"); break;
      case inZoom:
         _PutStr("\nMouse down inZoom"); break;
      case inVUpArrow:
         _PutStr("\nMouse down inVUpArrow"); break;
      case inVDownArrow:
         _PutStr("\nMouse down inVDownArrow"); break;
      case inVPageUp:
         _PutStr("\nMouse down inVPageUp"); break;
      case inVPageDown:
         _PutStr("\nMouse down inVPageDown"); break;
      case inVThumb:
         _PutStr("\nMouse down inVThumb"); break;
      case inHUpArrow:
         _PutStr("\nMouse down inHUpArrow"); break;
      case inHDownArrow:
         _PutStr("\nMouse down inHDownArrow"); break;
      case inHPageUp:
         _PutStr("\nMouse down inHPageUp"); break;
      case inHPageDown:
         _PutStr("\nMouse down inHPageDown"); break;
      case inHThumb:
         _PutStr("\nMouse down inHThumb"); break;
      case inMenuBar:
         _PutStr("\nMouse down inMenuBar"); break;
      default:
         _PutStr("\nMouse down someplace else"); break;
   }
   _GlobalToLocal(&mousePos, wh);
   _PutStr("\nPosition relative to window:");
   putLong(mousePos.v, 5);
   _PutChr(' ');
   putLong(mousePos.h, 5);
}

FoxInfo myFoxInfo[] = {
   {"ONLOAD", (FPFI) FindWindowFn, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Vea también

_MousePos( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro | _FindWindowP( ) (Rutina de biblioteca API)