_WOpenP( ) (Rutina de biblioteca API)
Crea una nueva ventana en las posiciones especificadas por los parámetros top, left, bottom y right.
WHANDLE _WOpenP(int top, int left, int bottom, int right, int flag,
int scheme_num, Scheme FAR *scheme, char FAR *bord)
int top; /* Top coordinate in pixels. */
int left; /* Left coordinate in pixels. */
int bottom; /* Bottom coordinate in pixels. */
int right; /* Right coordinate in pixels. */
int flag; /* Attributes. */
int scheme_num; /* Color scheme. */
Scheme FAR *scheme; /* Points to color scheme to use. */
char FAR *bord; /* Border type. */
Observaciones
Las posiciones de ventana pueden estar fuera de la pantalla. 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 o más de los valores de la tabla siguiente. 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 WOPENP
Código C
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
WHANDLE wh;
char customScheme[12] =
{
BLACK_ON | WHITE,
RED_ON | BLACK | BLINK,
WHITE_ON | WHITE | BRIGHT,
CYAN_ON | BLUE | BRIGHT,
GREEN_ON | BROWN,
BROWN_ON | BROWN | BRIGHT,
MAGENTA_ON | MAGENTA | BRIGHT,
RED_ON | MAGENTA | BRIGHT | BLINK,
BROWN_ON | GREEN | BRIGHT,
BLACK_ON | CYAN,
BLUE_ON | CYAN,
};
_Execute("WAIT WINDOW 'Press any key to see a window \
in WINDOW_SCHEME with WO_DOUBLEBOX border'");
wh = _WOpenP(10, 10, 160, 320, 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 = _WOpenP(10, 10, 160, 320, 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 = _WOpenP(10, 10, 160, 320, 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 = _WOpenP(10,10,160,320,WEVENT | CLOSE,-1,customScheme,
WO_SYSTEMBORDER);
_WShow(wh);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", 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