SetConsoleWindowInfo函数设置控制台屏幕缓冲区窗口的当前大小和位置。
BOOL SetConsoleWindowInfo(
HANDLE 【hConsoleOutput】, | //控制台屏幕缓冲区的句柄 |
BOOL 【bAbsolute】, | //坐标类型标志 |
CONST SMALL_RECT *【lpConsoleWindow】 | //新窗口矩形的地址 |
); |
参数
【hConsoleOutput】
标识控制台屏幕缓冲区。句柄必须具有GENERIC_WRITE权限。
【bAbsolute】
指定如何使用【lpConsoleWindow】参数指向的结构中的坐标。如果【bAbsolute】为TRUE,则坐标指定窗口的新左上角和右下角。如果为FALSE,则坐标是当前窗口角坐标的偏移量。
【lpConsoleWindow】
指向SMALL_RECT结构的值,其中包含确定窗口的新左上角和右下角的值。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
如果指定的窗口矩形延伸超出屏幕缓冲区的边界,该函数将失败。这意味着【lpConsoleWindow】矩形的最佳和剩下成员(或计算的顶部和左侧坐标,如果【bAbsolute】为FALSE)不能小于零。类似地,底部和对成员(或计算的底部和右侧坐标)分别不能大于(屏幕缓冲区高度-1)和(屏幕缓冲区宽度-1)。如果对成员(或计算的右坐标)小于或等于剩下成员(或计算左坐标)或底部成员(或计算的底坐标)小于或等于等于最佳成员(或计算的顶部坐标)。
对于具有多个屏幕缓冲区的控制台,更改一个屏幕缓冲区的窗口位置不会影响其他屏幕缓冲区的窗口位置。
要确定屏幕缓冲区窗口的当前大小和位置,请使用GetConsoleScreenBufferInfo功能。给定当前屏幕缓冲区大小,当前字体大小和屏幕大小,此函数还返回窗口的最大大小。GetLargestConsoleWindowSize函数返回给定当前字体和屏幕大小的最大窗口大小,但不考虑屏幕缓冲区的大小。
SetConsoleWindowInfo可用于通过移动窗口矩形的位置而不更改其大小来滚动屏幕缓冲区的内容。
也可以看看
GetConsoleScreenBufferInfo, GetLargestConsoleWindowSize, SMALL_RECT, ScrollConsoleScreenBuffer