是否可能创建一个比屏幕更大的Windows终端?C++

3

我正在测试一些东西,希望创建一个大小超过屏幕当前尺寸的Windows终端。我知道这听起来像一个愚蠢的想法,但这就是我想要实现的。

我尝试了不同的方法,例如:

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

并且:

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

我在不同的帖子中找到了两种方法。这两种方法都可以改变终端的尺寸,但该尺寸不能大于屏幕。 我也发现您不能(或者说,至少我没有成功地)手动调整Windows终端窗口大小,使其比屏幕更大。 这似乎是一项不可能完成的任务,但也许有人有办法做到。感谢您的帮助。

这个回答解决了你的问题吗?创建大于桌面(显示分辨率)的窗口 - user1810087
你是否安装了启用了NView的Nvidia驱动程序?它可能会将Win32消息钩子到剪贴板窗口大小以桌面坐标为准... - Luca
@Luca 我已经查找了一下,似乎我正在使用它来管理多个屏幕。我应该禁用它吗?这样做会让我能够调整终端的大小吗? - Marquetes2
@user1810087 我看了那篇帖子,但似乎在Windows 10上不再适用。我会继续尝试。 - Marquetes2
@MarcosRoudri 我会尝试一下。我记得它有一个选项可以避免窗口超出桌面区域。 - Luca
@Luca 我会尝试分享我的结果。谢谢 :) - Marquetes2
2个回答

1

使用Gimespace桌面扩展程序,它能够解除我使用过的几乎所有程序的大小限制。如果您运行的是Windows x64,您需要启用x64位模式,如果在运行此程序时无法正常工作,则可以通过选择托盘图标菜单中的“设置窗口大小”命令来强制指定大小。但是,当桌面扩展程序正在运行时,setwindowpos api调用也应该可以工作。


1
GetConsoleWindow在Windows终端中不像在旧版本控制台conhost.exe中那样正常工作。当在Windows终端中调用时,它会返回一个虚拟的HWND而不是终端窗口的实际HWND。顺便说一下,将来通常不推荐使用该API

即使使用\x1b[8;;t序列来调整控制台大小,控制台也非常明确地有防止自身调整大小超过当前所在监视器尺寸的代码。参见:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接