[控制台(6)] 管理控制台窗口[TZZ]

 时间:2024-10-19 08:49:36

大家好!今天我给大家介绍一下“Windows系统中管理控制台窗口的方法”。这里所说的控制台窗口长和宽,实际上指的是控制台缓冲区的横向字符个数与纵向字符个数,并非图形界面中的像素大小。控制台窗口指的是控制台程序窗口的客户区。如果您觉得这篇教程有帮助,请为我投上宝贵的一票,谢谢!如果您希望每天都能见到一篇干货教程,请给我个“关注”吧!

工具/原料

已安装VisualStudio2017(或以上版本);

已安装VS2017中的帮助文档(ViewHelper);

已掌握“[控制台(3)]查看控制台屏幕缓存信息[TZZ]”;

方法/步骤

1、打开VS2017,新建一个名为“ConsoleDemo6”的“Windows控制台应用程序”项目;

[控制台(6)] 管理控制台窗口[TZZ]

2、在“ConsoleDemo6.cpp”文件的main函数中,添加获取最大控制台大小的测试代码。在这份代码中,通过WindowsAPI函数GetLargestConsoleWindowSize获取控制台窗口的最大大小(行字符数x列字符数)。此函数返回的结果与传入的屏幕缓冲区大小无关。代码编写完毕后,调试运行程序。在弹出的控制台窗口中,你可以见到获取到的最大控制台窗口大小。打开控制台属性窗口,切换到“布局”选项卡,你会发现这个返回的大小与“屏幕缓冲区大小”和“窗口大小”完全不相干;

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

3、结束程序调试,返回到main函数中,继续藜局腑载添加“设置控制台窗口大小”的测试代码。在这份代码中,通过GetConsoleScreenBufferInfo函数脲摩喜清得到标准输出缓冲区的屏幕缓存信息(主要是控制台窗口大小),然后构造一个SMALL_RECT变量并传递给SetConsoleWindowInfo函数,设置控制台大小。代码编写完毕后,调试运行程序。在弹出的控制台窗口中,你会发现控制台窗口变成了原来的一半。打开控制台属性窗口,切换到“布局”选项卡中,你会发现窗口大小数值确实变成了原来的一半。此时,点击“确定”按钮确定控制台窗口大小设置(即之后启动的控制台,其大小默认为41x25);

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

4、关闭控制台程序,返回到main函数中。将易七淄苷之前以相对大小设置控制台窗口信息的代码注释掉,然后添加以相对大小设置控制台窗口信息的测试代码。在新代码中,仅仅修观鲼视防改传入矩形的Right字段。之所以需要减1,原因是SetConsoleWindowInfo函数要求传入的SMALL_RECT的Top和Left计算大小必须大于0,而Right和Bottom不能比缓冲区宽度减1和缓冲区高度减1大,否则,该函数会直接调用失败。代码编写完毕后,调试运行程序,在控制台窗口显示时,你会见到它有一个变大的过程。查看控制台的属性窗口,你会发现窗口大小确实变大了。注意,这里需要点击“取消”按钮关闭属性窗口,防止修改默认控制台大小;

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

5、对于SetConsoleWindowInfo函数而言,如果设置的矩形变量的Top和Bottom增大相同的值,控制台窗口会自动向下滚动。反之,则向上滚动。如果同时让Left和Right增大相同的值,那么控制台窗口会自动向右滚动。反之,向左滚动;

6、结束控制台程序,返回到main函数中。添加“让控制台窗口向下滚动5个字符”的测试代码。然后调试运行程序。在弹出的控制台窗口中,你会发现纵向滚动条向下滚动了5个字符位置;

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

7、结束控制台程序,返回到main函数中,继续添加“让控制台窗口向右滚动5个字符”的测试代码。然后调试运行程序。在弹出的控制台窗口中,你会发现横向滚动条也向右滚动了5个字符;

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

8、结束控制台程序,返回到main函数中。继续添加“让控制台窗口向左上滚动2个字符”的测试程序。然后调试运行程序,在弹出的控制台窗口中,你会见到横向和纵向滚动条仅仅向右下移动了3个字符。注意,给传入的SMALL_RECT变量设置负值时,必须保证其计算结果大于0,因此,只能是向右向下移动过一只才能让其向左向上移动;

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

9、结束控制台程序,返回到main函数中。继欹爸葛端续添加“将控制台程序窗口移动到主屏幕中央”的测试程序。在新增代码中,调用WindowsAPI函数GetConsoleWindow得到控制台程序窗口莞鲕塾侃句柄。然后通过API函数GetSystemMetrics获得主屏幕的宽度和高度,通过GetWindowRect函数获得控制台程序窗口的矩形大小。通过计算之后得到窗口位于屏幕中央时的左上角坐标,将该坐标和窗口大小传入到MoveWindow函数中,将窗口移动到屏幕中央位置。代码编写完毕后,调试运行程序。你会发现控制台程序的窗口从其他位置变到了屏幕中央;

[控制台(6)] 管理控制台窗口[TZZ]

[控制台(6)] 管理控制台窗口[TZZ]

10、至此,管理控制台窗口的测试代码就介绍完毕了。如果你想学习更多编程知识,请查看我写的其他干货教程。Enjoy!

js如何实现3d饼状图 sed 替换时报错sed can't read 的解决方法 VSCode怎么设置内部控制台选项会话启动 Mastercam 2018怎么设置步进增量为2 关于html内嵌video的一些参数设置
热门搜索
蛮荒记动漫 版画图片大全 青铜剑图片 意乱情迷动漫 图片合成软件