The SetConsoleWindowInfo function sets the current size and position of a console screen buffer's window.
BOOL SetConsoleWindowInfo(
HANDLE hConsoleOutput, | // handle of console screen buffer |
BOOL bAbsolute, | // coordinate type flag |
CONST SMALL_RECT *lpConsoleWindow | // address of new window rectangle |
); |
Parameters
hConsoleOutput
Identifies a console screen buffer. The handle must have GENERIC_WRITE access.
bAbsolute
Specifies how the coordinates in the structure pointed to by the lpConsoleWindow parameter are used. If bAbsolute is TRUE, the coordinates specify the new upper-left and lower-right corners of the window. If it is FALSE, the coordinates are offsets to the current window-corner coordinates.
lpConsoleWindow
Points to a SMALL_RECT structure that contains values that determine the new upper-left and lower-right corners of the window.
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
The function fails if the specified window rectangle extends beyond the boundaries of the screen buffer. This means that the Top and Left members of the lpConsoleWindow rectangle (or the calculated top and left coordinates, if bAbsolute is FALSE) cannot be less than zero. Similarly, the Bottom and Right members (or the calculated bottom and right coordinates) cannot be greater than (screen buffer height - 1) and (screen buffer width - 1), respectively. The function also fails if the Right member (or calculated right coordinate) is less than or equal to the Left member (or calculated left coordinate) or if the Bottom member (or calculated bottom coordinate) is less than or equal to the Top member (or calculated top coordinate).
For consoles with more than one screen buffer, changing the window location for one screen buffer does not affect the window locations of the other screen buffers.
To determine the current size and position of a screen buffer's window, use the GetConsoleScreenBufferInfo function. This function also returns the maximum size of the window, given the current screen buffer size, the current font size, and the screen size. The GetLargestConsoleWindowSize function returns the maximum window size given the current font and screen sizes, but it does not consider the size of the screen buffer.
SetConsoleWindowInfo can be used to scroll the contents of the screen buffer by shifting the position of the window rectangle without changing its size.
See Also
GetConsoleScreenBufferInfo, GetLargestConsoleWindowSize, SMALL_RECT, ScrollConsoleScreenBuffer