You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用C++创建尺寸大于当前屏幕的Windows Terminal窗口?

Windows Terminal创建超出屏幕尺寸窗口的可行方案

你之前尝试的两种方案生效但被限制,是因为Windows Terminal默认遵循Windows窗口管理器的约束,自动将窗口最大尺寸限制为当前屏幕的工作区大小,所有调整窗口尺寸的请求都会被Terminal内部逻辑拦截修正,手动拖拽也无法突破该限制。


第一步:修改Terminal配置放开尺寸限制

首先需要修改Windows Terminal的全局配置,关闭屏幕尺寸约束:

  1. 打开Windows Terminal,按下Ctrl+,打开设置面板
  2. 点击设置面板左下角的「打开JSON文件」,打开配置文件
  3. 在JSON的根节点下添加如下配置项:
"windowingBehavior": "useAnyAvailableArea"
  1. 保存配置文件,修改配置后必须完全退出Windows Terminal并重启,配置才会生效。

该配置的作用是允许Terminal窗口突破当前屏幕的尺寸限制,支持自定义任意大小的窗口。


第二步:使用原有方法调整窗口尺寸

配置生效后,你之前使用的两种调整方案均可正常生效,无需修改代码即可创建超出屏幕尺寸的窗口:

方案1:Win32 API调整

HWND console = GetConsoleWindow();
RECT r;
GetWindowRect(console, &r);
MoveWindow(console, r.left, r.top, 100, 3000, TRUE);

方案2:虚拟终端控制序列调整

DWORD CurrentMode;
GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &CurrentMode);
SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), CurrentMode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
fputs("\x1b[8;30;800t", stdout);

额外方案:启动时直接固定超出屏幕的窗口尺寸

如果需要Terminal启动时自动创建指定尺寸的窗口,可以在配置文件中额外添加两个启动参数:

"initialCols": 800,
"initialRows": 30

保存重启后,Terminal启动时就会自动创建对应尺寸的窗口,无需额外运行调整代码。


补充说明:若你的Windows Terminal版本低于v1.12,无windowingBehavior配置项,可以在调用MoveWindow前先修改窗口样式,临时关闭边框限制:

HWND console = GetConsoleWindow();
LONG_PTR originalStyle = GetWindowLongPtr(console, GWL_STYLE);
// 移除边框和标题栏限制
SetWindowLongPtr(console, GWL_STYLE, originalStyle & ~(WS_CAPTION | WS_THICKFRAME));
RECT r;
GetWindowRect(console, &r);
MoveWindow(console, r.left, r.top, 100, 3000, TRUE);
// 可选:调整完成后恢复原始窗口样式
SetWindowLongPtr(console, GWL_STYLE, originalStyle);

内容的提问来源于stack exchange,提问作者Marquetes2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:45:03