Share via


_WScrollP( ) (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 _WScrollP(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 píxeles 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 píxeles 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, _WScrollP( ) borra 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, _WScrollP( ) desplaza el rectángulo hacia arriba y a la izquierda. A continuación, desplaza el rectángulo hacia abajo y a la derecha.

Código Visual FoxPro

SET LIBRARY TO WSCROLLP

Código C

#include <pro_ext.h>

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

   wh = _WOpenP(2, 2, 160, 320, WEVENT | CLOSE, WINDOW_SCHEME,
      (char *) 0, WO_SYSTEMBORDER);

  _WShow(wh);

   rect.top   = 40;
   rect.left   = 40;
   rect.bottom = 100;
   rect.right   = 100;

   for (pos.v = rect.top; pos.v < rect.bottom; pos.v += 6)
   {
      for (pos.h = rect.left; pos.h < rect.right; pos.h +=6)
      {
         _WPosCursorP(wh, pos);
    _WPutChr(wh, 'X');
      }
   }
   _Execute("WAIT 'Press any key to _WScroll(wh, rect, -20, -20)'");
   _WScrollP(wh, rect, -20, -20);
   _Execute("WAIT 'Press any key to _WScroll(wh, rect, +40, +40)'");
   _WScrollP(wh, rect, +40, +40);
}

FoxInfo myFoxInfo[] =
{
   {"ONLOAD", 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 | _WPosCursor( ) (Rutina de biblioteca API) | _WPutChr( ) (Rutina de biblioteca API)