Compartir a través de


_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