C语言 CONSOLE_SCREEN_BUFFER_INFO 这个语句有什么用?
发布网友
发布时间:2024-01-03 08:42
我来回答
共1个回答
热心网友
时间:2024-02-01 00:41
COORD和CONSOLE_SCREEN_BUFFER_ INFO是wincon.h定义的控制台结构体类型,其原型如下:
// 控制台窗口信息结构体
typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
COORD dwSize; // 缓冲区大小
COORD dwCursorPosition; // 当前光标位置
WORD wAttributes; // 字符属性
SMALL_RECT srWindow; // 当前窗口显示的大小和位置
COORD dwMaximumWindowSize; // 最大的窗口缓冲区大小
} CONSOLE_SCREEN_BUFFER_INFO ;
举个简单的例子:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
HANDLE hOut;
CONSOLE_SCREEN_BUFFER_INFO bInfo; // 存储窗口信息
COORD pos = {0, 0};
// 获取标准输出设备句柄
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
// 获取窗口信息
GetConsoleScreenBufferInfo(hOut, &bInfo );
printf("\n\nThe soul selects her own society\n");
printf("Then shuts the door\n");
printf("On her devine majority\n");
printf("Obtrude no more\n\n");
_getch();
// 向窗口中填充字符以获得清屏的效果
FillConsoleOutputCharacter(hOut,' ', bInfo.dwSize.X * bInfo.dwSize.Y, pos, NULL);
// 关闭标准输出设备句柄
CloseHandle(hOut);
return 0;
}