Win32 API 提供了对控制台窗口及其缓冲区相当大的控制权。下图显示了屏幕缓冲区可以大于控制台窗口当前显示的行数。控制台窗口就像是一个“视窗”,显示部分缓冲区。
下列函数影响的是控制台窗口及其相对于屏幕缓冲区的位置:
SetConsoleWindowInfo:设置控制台窗口相对于屏幕缓冲区的大小和位置。
GetConsoleScreenBufferInfo:返回(还包括其他一些信息)控制台窗口相对于屏幕缓冲区的矩形坐标。
SetConsoleCursorPosition:将光标设置在屏幕缓冲区内的任何位置;如果区域不可见,则移动控制台窗口直到光标可见。
ScrollConsoleScreenBuffer:移动屏幕缓冲区中的一些或全部文本,本函数会影响控制台窗口显示的文本。
1) SetConsoleTitle
函数 SetConsoleTitle 可以改变控制台窗口的标题。示例如下:
.data
.titleStr BYTE "Console title", 0
.code
INVOKE SetConsoleTitle, ADDR titleStr
2) GetConsoleScreenBufferInfo
函数 GetConsoleScreenBufferInfo 返回控制台窗口的当前状态信息。它有两个参数:控制台屏幕的句柄和指向该函数填充的结构的指针: