Freigeben über


_WScroll( ), API-Bibliotheksroutine

Führt für einen Teil des Fensterinhalts einen Bildlauf nach links oder rechts bzw. nach oben oder unten durch.

void _WScroll(WHANDLE wh, Rect r, int dv, int dh)
WHANDLE wh;            /* Window handle. */
Rect r;                     /* Portion to scroll. */
int dv;                        /* Left or right. */
int dh;                     /* Up or down. */

Hinweise

  • Der Parameter r beschreibt den Teil des Fensters, für den ein Bildlauf durchgeführt werden soll.
  • Der dv-Parameter**beschreibt die Anzahl der Zeichen, um die ein Bildlauf des Fensters nach links oder rechts durchgeführt werden soll. Wenn dv negativ ist, wird ein Bildlauf des Fensterinhalts nach links durchgeführt. Wenn dv positiv ist, wird ein Bildlauf des Fensterinhalts nach rechts durchgeführt.
  • Der dh-Parameter beschreibt die Anzahl der Zeichen, um die ein Bildlauf des Fensters nach oben oder unten durchgeführt werden soll. Wenn dh negativ ist, wird ein Bildlauf des Fensterinhalts nach oben durchgeführt. Wenn dh positiv ist, wird ein Bildlauf des Fensterinhalts nach unten durchgeführt.

Wenn sowohl dv als auch dh den Wert 0 haben, löscht _WScroll( ) die Zeichen innerhalb des Rechtecks.

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 wird ein Fenster geöffnet und ein rechteckiges Muster mit dem Zeichen X ausgegeben. Dieses Rechteck ist gleichzeitig das Bildlaufrechteck. Zuerst wird ein Bildlauf des Rechtecks um zwei Positionen nach oben und um zwei Positionen nach links durchgeführt. Anschließend wird ein Bildlauf des Rechtecks um vier Positionen nach unten und um vier Positionen nach rechts durchgeführt.

Visual FoxPro-Code

SET LIBRARY TO WSCROLL 

C-Code

#include <pro_ext.h>

FAR WScrollEx(ParamBlk FAR *parm)
{
   WHANDLE wh;
   Point pos;
   Rect rect;

   wh = _WOpen(2,2,20,70,WEVENT | CLOSE,WINDOW_SCHEME,(Scheme FAR *) 0,
      WO_SYSTEMBORDER);
   _WShow(wh);

   rect.top   = 6;
   rect.left   = 6;
   rect.bottom = 12;
   rect.right   = 12;

   for (pos.v = rect.top; pos.v < rect.bottom; pos.v++)
   {
      for (pos.h = rect.left; pos.h < rect.right; pos.h++)
      {
         _WPosCursor(wh, pos);
         _WPutChr(wh, 'X');
      }
   }
   _Execute("WAIT WINDOW 'Press any key to _WScroll(wh,rect,-2,-2)'");
   _WScroll(wh, rect, -2, -2);
   _Execute("WAIT WINDOW 'Press any key to _WScroll(wh,rect,+4,+4)'");
   _WScroll(wh, rect, +4, +4);
}

FoxInfo myFoxInfo[] = {
   {"ONLOAD", (FPFI) WScrollEx, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Siehe auch

_WClear( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API | _WScrollP( ), API-Bibliotheksroutine | _WPosCursor( ), API-Bibliotheksroutine | _WPutChr( ), API-Bibliotheksroutine