控制台屏幕缓冲区

【勇芳软件工作室】汉化HomePreviousNext

A 【屏幕缓冲区】是用于在控制台窗口中输出的字符和颜色数据的二维数组。控制台可以有多个屏幕缓冲区。【主动屏幕缓冲区】是屏幕上显示的。

每当创建一个新的控制台时,该系统就会创建一个屏幕缓冲区。一个进程可以使用CreateConsoleScreenBuffer函数为其控制台创建其他屏幕缓冲区。在调用SetConsoleActiveScreenBuffer功能之前指定了一个新的屏幕缓冲区,直到它的句柄被指定为止。但是,屏幕缓冲区可以被访问用于读取和写入,无论它们是活动还是非活动。

每个屏幕缓冲区都有自己的二维数组的字符信息记录。每个字符的数据存储在CHAR_INFO结构中,该结构指定Unicode或ANSI字符以及显示该字符的前景色和背景颜色。

可以为每个屏幕缓冲区独立设置与屏幕缓冲区相关联的多个属性。这意味着更改主动屏幕缓冲区可能会对控制台窗口的外观产生重大影响。与屏幕缓冲区相关联的属性包括:

*屏幕缓冲区大小,字符行和列。

*文本属性(用于显示要由WriteFileWriteConsole函数写入的文本的前景和背景颜色)。

*窗口大小和位置(控制台窗口中显示的屏幕缓冲区的矩形区域)。

*光标位置,外观和可视性。

*输出模式(ENABLE_PROCESSED_OUTPUT和ENABLE_WRAP_AT_EOL_OUTPUT)。有关控制台输出模式的更多信息,请参阅高级控制台模式.

当创建屏幕缓冲区时,它包含空格。它的光标可见并且位于缓冲区的原点(0,0),并且窗口位于其左上角位于缓冲区的原点。屏幕缓冲区的大小,窗口大小,文本属性和光标的外观由用户或系统默认值决定。要检索与屏幕缓冲区相关联的各种属性的当前值,请使用GetConsoleScreenBufferInfoGetConsoleCursorInfoGetConsoleMode功能。

更改任何屏幕缓冲区属性的应用程序应该创建自己的屏幕缓冲区,或者在启动过程中保存继承的屏幕缓冲区的状态,并在退出时将其还原。