【问题标题】:Resize CMD Window调整 CMD 窗口大小
【发布时间】:2011-09-26 08:44:06
【问题描述】:

如何在 C 或 C++ 中以编程方式调整命令提示符窗口的大小?例如 80x25 或 80x40 字符。提前谢谢你。

【问题讨论】:

    标签: windows command-prompt dos cmd


    【解决方案1】:

    【讨论】:

    • 有没有办法在 Windows 9x 中设置 MS-DOS 提示符的大小?
    • @user964672 Win9x 中的命令提示符结构与 WinNT 衍生操作系统中的控制台子系统完全不同。这可能是可能的,但可能需要低级操作:以编程方式生成.pif 文件可能要容易得多。
    • 如何创建 .pif 文件以将命令窗口设置为 80x25?
    • @user964672 创建两个 PIF 文件,其 UI 仅在窗口大小上有所不同,然后进行比较。最后一个 Win9x 已经有十多年的历史了,而且完全失去了支持:你只能靠自己
    • 有没有办法确定命令窗口的大小(在基于 WINNT 的操作系统中)而不调整它的大小,以便程序可以相应地调整输出?
    【解决方案2】:

    MODE 命令允许您设置命令提示符窗口的大小。语法是:

    模式 [列],[行]

    例如,对于 80x25 的窗口,您将使用

    system("MODE 80,25");
    此大小与窗口的特定实例相关联,因此其他命令窗口将设置为默认大小。它适用于较新的基于 WinNT 的操作系统(即 Win2000/XP/7)和 Win9x。如果不支持大小,则不会更改。

    将它放在任何输出之前,因为它会清除屏幕。

    【讨论】:

      【解决方案3】:

      我做了更多的研究,这就是我想出的:

      #include <windows.h>
      
      int main(){
        system("mode 80,25");   //Set mode to ensure window does not exceed buffer size
        SMALL_RECT WinRect = {0, 0, 80, 25};   //New dimensions for window in 8x12 pixel chars
        SMALL_RECT* WinSize = &WinRect;
        SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), true, WinSize);   //Set new size for window
      
        //Insert your code here
      
        return 0;
      }
      

      【讨论】:

      • system() 函数可能存在安全问题。如果有名为 'mode' 的程序,它将执行 'mode' 而不是调整 cmd 提示符的大小
      猜你喜欢
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2012-04-07
      • 2017-01-20
      • 1970-01-01
      相关资源
      最近更新 更多