ScrollConsoleScreenBuffer
The ScrollConsoleScreenBuffer
function moves a block of data in a screen buffer. The effects of the move can
be limited by specifying a clipping rectangle, so the contents of the screen buffer
outside the clipping rectangle are unchanged.
BOOL ScrollConsoleScreenBuffer(
HANDLE hConsoleOutput, |
// handle of a
console screen buffer |
CONST SMALL_RECT *lpScrollRectangle, |
// address of
screen buffer rect. to move |
CONST SMALL_RECT *lpClipRectangle, |
// address of
affected screen buffer rect. |
COORD dwDestinationOrigin, |
// new location of
screen buffer rect. |
CONST CHAR_INFO *lpFill |
// address of fill
character and color |
); |
|
Parameters
hConsoleOutput
Identifies a
console screen buffer. The handle must have GENERIC_WRITE access.
lpScrollRectangle
Points to a SMALL_RECT
lpClipRectangle
Points to a SMALL_RECT
structure whose members specify the upper-left and lower-right coordinates of
the screen buffer rectangle that is affected by the scrolling. This pointer can
be NULL.
dwDestinationOrigin
Specifies the
upper-left corner of the new location of the lpScrollRectangle contents.
lpFill
Points to a CHAR_INFO
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError
Remarks
ScrollConsoleScreenBuffer copies the contents of a rectangular region of a
screen buffer, specified by the lpScrollRectangle parameter, to another
area of the screen buffer. The target rectangle has the same dimensions as the lpScrollRectangle
rectangle with its upper-left corner at the coordinates specified by the dwDestinationOrigin
parameter. Those parts of lpScrollRectangle that do not overlap with the
target rectangle are filled in with the character and color attributes
specified by the lpFill parameter.
The clipping
rectangle applies to changes made in both the lpScrollRectangle
rectangle and the target rectangle. For example, if the clipping rectangle does
not include a region that would have been filled by the contents of lpFill,
the original contents of the region are left unchanged.
If the scroll
or target regions extend beyond the dimensions of the screen buffer, they are
clipped. For example, if lpScrollRectangle is the region contained by
(0,0) and (19,19) and dwDestinationOrigin is (10,15), the target
rectangle is the region contained by (10,15) and (29,34). However, if the
screen buffer is 50 characters wide and 30 characters high, the target
rectangle is clipped to (10,15) and (29,29). Changes to the screen buffer are
also clipped according to lpClipRectangle, if the parameter specifies a SMALL_RECT
structure. If the clipping rectangle is specified as (0,0) and (49,19), only
the changes that occur in that region of the screen buffer are made.
Windows
NT: This function uses either Unicode
characters or 8-bit characters from the console's current codepage. The
console's codepage defaults initially to the system's OEM codepage. To change
the console's codepage, use the SetConsoleCP or SetConsoleOutputCP
functions, or use the chcp or mode con cp select= commands.
See Also