wincon.h


ScrollConsoleScreenBuffer

La función ScrollConsoleScreenBuffer mueve un bloque de datos en un buffer de pantalla. El efecto del movimiento puede ser limitado especificando un rectángulo de recorte, de modo que el contenido del buffer fuera del rectángulo de recorte permanezca sin cambios.

Sintaxis

BOOL ScrollConsoleScreenBuffer(
    HANDLE hConsoleOutput,                // manipulador de un buffer de pantalla de consola
    CONST SMALL_RECT *lpScrollRectangle,  // dirección del rectángulo del buffer de pantalla a mover
    CONST SMALL_RECT *lpClipRectangle,    // dirección del rectángulo del buffer de pantalla afectado
    COORD dwDestinationOrigin,            // nueva posición del rectángulo del buffer de pantalla
    CONST CHAR_INFO *lpFill               // dirección del carácter y color para rellenar
   );

Parámetros

hConsoleOutput
Identifica un buffer de pantalla de consola. El manipulador debe tener acceso GENERIC_WRITE.
lpScrollRectangle
Puntero a una estructura SMALL_RECT cuyos miembros especifican las coordenadas de las esquinas superior-izquierda e inferior-derecha del rectángulo del buffer de pantalla a mover.
lpClipRectangle
Apunta a una estructura SMALL_RECT cuyos miembros especifican las coordenadas superior-izquierda e inferior-derecha del rectángulo del buffer de pantalla que se verá afectado por el desplazamiento. Este puntero puede ser NULL.
dwDestinationOrigin
Especifica la esquina superior-izquierda de la nueva posición del contenido de lpScrollRectangle.
lpFill
Apunta a una estructura CHAR_INFO que especifica el carácter y atributos de color a usar en el rellenado de las celdas incluidas en la intersección entre lpScrollRectangle y lpClipRectangle que hayan quedado vacías como resultado del desplazamiento.

Valor de retorno

Si la función tiene éxito, el valor de retorno es distinto de cero.

Si la función falla, el valor de retorno es cero. Para obtener información adicional sobre el error, llamar a la función GetLastError.

Observaciones

ScrollConsoleScreenBuffer copia el contenido de una región rectangular del buffer de pantalla, especificado por el parámetro lpScrollRectangle, a otra área del buffer de pantalla. El rectángulo objetivo tiene las mismas dimensiones que el rectángulo lpScrollRectangle con su esquina superior-izquierda en las coordenadas especificadas por el parámetro dwDestinationOrigin. Aquellas partes de lpScrollRectangle que no se superponen con el rectángulo de destino se rellenan con el carácter y atributos de color especificados por el parámetro lpFill.

El rectángulo de recorte se aplica sólo a cambios hechos tanto en el rectángulo lpScrollRectangle como en el rectángulo de destino. Por ejemplo, si el rectángulo de recorte no incluye una región que debería rellenarse con el contenido de lpFill, el contenido original de la región permanece sin modificar.

Si las regiones de desplazamiento o de destino se extienden más allá de las dimensiones del buffer de pantalla, serán recortadas. Por ejemplo, si lpScrollRectangle es la región contenida entre (0,0) y (19,19), y dwDestinationOrigin es (10,15), el rectángulo de destino es la región contenida entre (10,15) y (29,34). Sin embargo, si el buffer de pantalla tiene 50 caracteres de ancho y 30 caracteres de alto, el rectángulo de destino es recortado a (10,15) y (29,29). Las modificaciones en el buffer de pantalla también son recortadas de acuerdo con lpClipRectangle, si el parámetro especifica una estructura SMALL_RECT. Si el rectángulo de recorte especifiado es el área entre (0,0) y (49,19), sólo se producirán aquellos cambios que se produzcan en esa región del buffer de pantalla.

Windows NT: Esta función usa tanto caracteres Unicode como de 8 bits de la código de página actual de la consola. El código de página de la consola se inicializa por defecto al código de página OEM del sistema. Para modificar el código de página de la consola, usar las funciones SetConsoleCP o SetConsoleOutputCP, o usar los comandos chcp o mode con cp select=.