Freigeben über


_WOpen( ), API-Bibliotheksroutine

Erstellt ein neues Fenster an den Koordinaten, die durch die Parameter top (oben), left (links), bottom (unten) und right (rechts) angegeben werden.

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. */

Hinweise

Die Fensterkoordinaten können außerhalb des Bildschirms liegen. Die Höhe darf jedoch den Wert 120 und die Breite den Wert 264 nicht überschreiten. Es wird zusätzlicher Speicher reserviert, um den Teil des Fensters zu speichern, der außerhalb des Bildschirms liegt.

Die Fensterattribute werden über den flag-Parameter festgelegt. Der flag-Parameter kann einen oder mehrere der folgenden flag-Werte haben. Sie können mehrere Attributwerte kombinieren, indem Sie den C-Operator | oder den +-Operator verwenden. Typische Fensterränder werden in PRO_EXT.H definiert.

flag-Wert Fensterattribut
WCURSOR Die Einfügemarke kann in diesem Fenster angezeigt werden.
ZOOM Das Fenster kann vergrößert werden.
ADJ Die Größe des Fensters kann angepasst werden.
CLOSE Das Fenster kann geschlossen werden.
MOVE Das Fenster kann verschoben werden.
AUTOSCROLL In dem Fenster wird ein Bildlauf durchgeführt, wenn die Ausgabe über die letzte Zeile hinausgeht.
WEVENT Das Fenster empfängt, aktiviert und deaktiviert Ereignisse.
SHADOW Das Fenster wirft einen Schatten.
WMODAL Benutzer können dieses Fenster nicht in den Hintergrund bringen.
WMINIMIZE Das Fenster kann minimiert werden.

Der scheme_num-Parameter kann eine beliebige gültige Farbschemanummer sein oder -1, um anzuzeigen, dass der scheme-Parameter auf das zu verwendende Farbschema zeigt.

Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

Im folgenden Beispiel werden Fenster mit unterschiedlichen Farbschemata und Rahmen erstellt. Beachten Sie insbesondere das benutzerdefinierte Farbschema.

Visual FoxPro-Code

SET LIBRARY TO WOPEN 

C-Code

#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
};

Siehe auch

_WClose( ), API-Bibliotheksroutine | _WSelect( ), API-Bibliotheksroutine | _WSetTitle( ) API-Bibliotheksroutine | _WShow( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API