_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)