_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