_WOpen( ) (Rutina de biblioteca API)
Crea una nueva ventana en las coordenadas especificadas por los parámetros top, left, bottom y right.
WHANDLE _WOpen(int top, int left, int bottom, int right, int flag,
int scheme_num, Scheme FAR *scheme, char FAR *bord)
int top; /* Row of top coordinate. */
int left; /* Column of left coordinate. */
int bottom; /* Row of bottom coordinate. */
int right; /* Column of right coordinate. */
int flag; /* Attributes. */
int scheme_num; /* Color scheme. */
Scheme FAR *scheme; /* Points to color scheme to use. */
char FAR *bord; /* Border type. */
Observaciones
Las coordenadas de la ventana pueden estar fuera de la pantalla, pero el alto no puede superar 120 ni el ancho 264. Se asigna memoria adicional para mantener la imagen de esta ventana fuera de la pantalla.
El parámetro flag determina los atributos de la ventana. Flag puede tener uno de los valores siguientes. Puede combinar múltiples valores de indicador mediante los operadores | o + del lenguaje C. Los bordes de ventana más habituales se definen en PRO_EXT.H.
Valor de flag | Atributo de ventana |
---|---|
WCURSOR | El punto de inserción puede mostrarse en esta ventana. |
ZOOM | El usuario puede hacer zoom en la ventana. |
ADJ | El usuario puede ajustar el tamaño de la ventana. |
CLOSE | El usuario puede cerrar la ventana. |
MOVE | El usuario puede mover la ventana. |
AUTOSCROLL | La ventana se desplaza cuando el resultado sobrepasa la línea inferior. |
WEVENT | La ventana recibe, activa y desactiva eventos. |
SHADOW | La ventana tiene una sombra. |
WMODAL | El usuario no puede enviar esta ventana al fondo. |
WMINIMIZE | El usuario puede minimizar esta ventana. |
El parámetro scheme_num puede ser cualquier número válido de esquema de colores o – 1 para indicar que el parámetro scheme señala el esquema de colores que se va a utilizar.
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 crea ventanas que utilizan varios esquemas de colores y bordes distintos. En concreto, observe el esquema de colores personalizado.
Código Visual FoxPro
SET LIBRARY TO WOPEN
Código C
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
WHANDLE wh;
Scheme customScheme =
{
(char) (BLACK_ON | WHITE),
(char) (RED_ON | BLACK | BLINK),
(char) (WHITE_ON | WHITE | BRIGHT),
(char) (CYAN_ON | BLUE | BRIGHT),
(char) (GREEN_ON | BROWN),
(char) (BROWN_ON | BROWN | BRIGHT),
(char) (MAGENTA_ON | MAGENTA | BRIGHT),
(char) (RED_ON | MAGENTA | BRIGHT | BLINK),
(char) (BROWN_ON | GREEN | BRIGHT),
(char) (BLACK_ON | CYAN),
(char) (BLUE_ON | CYAN),
};
_Execute("WAIT WINDOW 'Press any key to see a window \
in WINDOW_SCHEME with WO_DOUBLEBOX border'");
wh = _WOpen(2,2,20,70,WEVENT | CLOSE,WINDOW_SCHEME,(Scheme FAR *) 0,
WO_DOUBLEBOX);
_WShow(wh);
_Execute("WAIT WINDOW 'Press any key to see a window \
in ALERT_SCHEME with WO_SINGLEBOX border'");
_WClose(wh);
wh = _WOpen(2,2,20,70,WEVENT | CLOSE,ALERT_SCHEME, (Scheme FAR *) 0,
WO_SINGLEBOX);
_WShow(wh);
_Execute("WAIT WINDOW 'Press any key to see a window \
in WINDOW_SCHEME with WO_PANELBORDER border'");
_WClose(wh);
wh = _WOpen(2,2,20,70,WEVENT | CLOSE,WINDOW_SCHEME,(Scheme FAR *) 0,
WO_PANELBORDER);
_WShow(wh);
_Execute("WAIT WINDOW 'Press any key to see a window \
in a custom scheme with WO_SYSTEMBORDER border'");
_WClose(wh);
wh = _WOpen(2,2,20,70,WEVENT | CLOSE,-1,(Scheme FAR *) customScheme,
WO_SYSTEMBORDER);
_WShow(wh);
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) Example, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Vea también
_WClose( ) (Rutina de biblioteca API) | _WSelect( ) (Rutina de biblioteca API) | _WSetTitle( ) (Rutina de biblioteca API) | _WShow( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro