_WScroll( ) (Rutina de biblioteca API)

Desplaza una parte del contenido de una ventana a la izquierda o la derecha y hacia arriba o hacia abajo.

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

Observaciones

  • El parámetro r describe la parte de la ventana que se va a desplazar.
  • El parámetro dv describe el número de caracteres que se va a desplazar la ventana a izquierda o derecha. Si dv es negativo, el contenido de la ventana se desplazará hacia la izquierda. Si dv es positivo, se desplazará a la derecha.
  • El parámetro dh describe el número de caracteres que se va a desplazar la ventana hacia arriba o hacia abajo. Si dh es negativo, el contenido de la ventana se desplazará hacia arriba. Si dh es positivo, se desplazará hacia abajo.

Si dv y dh son 0, _WScroll( ) borrará los caracteres del interior del rectángulo.

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 abre una ventana y dibuja un patrón rectangular de X. Este rectángulo es también el rectángulo de desplazamiento. En primer lugar, el ejemplo desplaza el rectángulo dos posiciones hacia arriba y dos posiciones a la izquierda. A continuación, desplaza el rectángulo cuatro posiciones hacia abajo y cuatro posiciones a la derecha.

Código Visual FoxPro

SET LIBRARY TO WSCROLL 

Código C

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

Vea también

_WClear( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro | _WScrollP( ) (Rutina de biblioteca API) | _WPosCursor( ) (Rutina de biblioteca API) | _WPutChr( ) (Rutina de biblioteca API)