手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

时间:2024-10-12 19:42:43

1、打开VS2017,新建一个名为“ConsoleDemo3”的“Windows控制台应用程序”项目(具体创建方法见引用经验);

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

2、项目创建完毕后,在“ConsoleDemo3.cpp”文件中包含“Windows.h”头文件,然后在main函数中调用system函数防止控制台自动退出。代码编写完毕后,调试运行程序;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

3、程序启动之后,鼠标左键单击控制台窗口左上角的应用程序图标打开系统菜单。在弹出菜单中,选择“属性”,打开控制台的“属性窗口”;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

4、在控制台属性窗口中,切换到“布局”选项卡,在这个选项卡页面中可以设置“屏幕缓冲区大小”、“窗口大小”和“窗口位置”。如果勾选了“由系统定位窗口”,那么控制台窗口的位置将由系统决定,设置的窗口位置会被忽略。对于“屏幕缓冲区大小”和“窗口大小”而言,宽度和高度的单位是“字符个数”,并非“像素”。因此,在计算时一定要注意换算;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

5、查看完控制台杨钭维程属性后,关闭属性窗口并退出控制台程序,返回到“ConsoleDemo3.cpp”源代码文件中。在main函数之上定义一个名为“tx_console忧溲枷茫_print_buffer_info”的函数。该函数通过Windows API函数GetConsoleScreenBufferInfo获得控制台屏幕缓存的信息,然后通过printf函数将这些信息输出到控制台中;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

6、在main函数中添加测试tx_console_print_buffer_info函数的代码。然后调试运行程序。在弹出的控制台窗口中,可以见到当前屏幕缓冲区的信息。此时,可以查看控制台窗口的属性信息,与输出参数对照着看。你会发现“屏幕缓冲区大小”是相同的,“控制台缓存相对于显示窗口左上角的坐标”其实就是控制台屏幕区域,即属性窗口中的“窗口大小”;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]
[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

7、关闭控制台窗口返回到“ConsoleDemo3.cpp”文件中,继续在tx_console_print_buffer函数之后定义一个“tx_console_print_buffer_ex”函数。该函数中,通过Windows API函数“GetConsoleScreenBufferInfoEx”获得更多的控制台屏幕缓存信息,然后通过printf格式化输出获得的信息。在调用此API函数时,传入的“CONSOLE_SCREEN_BUFFER_INFOEX”结构体变量的“cbSize”变量必须指定为该结构体的字节大小,否则函数调用会失败;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

8、在main函数中添加测试tx_console_print_buffer_info_ex函数的代码,然后调试运行程序。在弹出的控制台窗口中,可以见到更多的屏幕缓冲区信息。其中颜色表的值实际上是无效值,因为你还没有为控制台指定颜色表数据;

[控制台(3)] 查看控制台屏幕缓存信息[TZZ]
[控制台(3)] 查看控制台屏幕缓存信息[TZZ]

9、至此,获得屏幕缓冲区信息的方法就介绍完毕了。下一篇,我们再来研究一下“控制台中的字体”。Enjoy!

© 手抄报圈