【发布时间】:2017-05-09 15:20:10
【问题描述】:
我只是在玩简单的 C++ 控制台应用程序。
我正在尝试调整控制台窗口的大小,它工作正常。首先我调整实际窗口的大小,然后缓冲区和一切都很好,但是一旦我尝试压缩代码,窗口就不再调整大小。这真的没那么重要。我只是想知道,我看过的大多数建议都是这样声明SMALL_RECT的。
P.S 我正在使用 TDM-GCC 64 和带有 std=c++17 的 Eclipse
这可以正常工作,并且窗口大小已正确调整
void SetCMDSizeAndTitle(short width, short height, string title) {
COORD coord = { width, height };
SMALL_RECT rect;
rect.Top = 0;
rect.Left = 0;
rect.Bottom = height - 1;
rect.Right = width - 1;
SetConsoleTitle(TEXT(title.c_str()));
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &rect);
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
但是这不起作用,窗口保持默认大小
void SetCMDSizeAndTitle(short width, short height, string title) {
COORD coord = { width, height };
SMALL_RECT rect = { 0, 0, height - 1, width -1 };
SetConsoleTitle(TEXT(title.c_str()));
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &rect);
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
这并不是那么重要。代码行数越少越好,我只是很好奇为什么它不起作用。
【问题讨论】:
标签: c++ windows c++17 windows-console