【问题标题】:Is there a way to force a console application to run at a certain window size (using Pdcurses)?有没有办法强制控制台应用程序以特定的窗口大小运行(使用 Pdcurses)?
【发布时间】:2011-01-13 23:00:28
【问题描述】:
我正在尝试在 C++ 中拼凑一个小的 roguelike,但我遇到了一个问题 - 为了让游戏正确显示,控制台窗口必须有点宽(大约 45 行, 115 列)。通过右键单击菜单栏并为具有相同名称的窗口设置默认值很容易进行更改,但是有没有办法可以从代码中自动设置它,这样我就不必让潜在用户搞砸了?我正在使用 Pdcurses 来处理输出,如果这有帮助的话。
【问题讨论】:
标签:
c++
window
console-application
ncurses
pdcurses
【解决方案1】:
IIRC,这可以在启动游戏的快捷方式中设置,但它不是文本,我不知道使用哪些库或 Windows API 来修改它。这可能比尝试使用 pdcurses 更简单。
但是,不要忘记 Windows 确实有几个控制台 API。从 MSDN 中的AllocConsole 开始了解概述,或直接跳至SetConsoleWindowInfo。
【解决方案3】:
这是一个非常古老的问题,但无论如何我都会发布我的答案,以防将来对某人有所帮助。
这是我在 MS Windows 中使用的:
int err = system("mode con lines=45 cols=115");
我在致电initscr(); 之前直接使用它,它就像一个魅力。
显然,这不是很便携,但如果您在 Windows 上进行开发,它就可以解决问题。
【解决方案4】:
/* Resize the terminal to something larger than the physical screen */
resize_term(2000, 2000);
/* Get the largest physical screen dimensions */
getmaxyx(_window, _rows, _cols);
/* Resize so it fits */
resize_term(_rows - 1, _cols - 1);
/* Get the screen dimensions that fit */
getmaxyx(_window, _rows, _cols);