有没有办法强制控制台应用程序以某个窗口大小运行(使用Pdcurses)?

时间:2010-02-06 21:12:08

标签: c++ window console-application ncurses pdcurses

我正在尝试用C ++编写一个小的roguelike,但我遇到了一个问题 - 为了让游戏正确显示,控制台窗口必须有点宽(大约45行) ,115 cols)。通过右键单击菜单栏并设置具有相同名称的窗口的默认值,可以轻松更改,但有一种方法可以从代码中自动设置它,所以我不必要求潜在用户搞砸?我正在使用Pdcurses来处理输出,如果这有帮助的话。

4 个答案:

答案 0 :(得分:1)

IIRC,这可以在启动游戏的快捷方式中设置,但它不是文本,我不知道使用哪些库或Windows API来修改它。这可能比尝试使用pdcurses更简单。

但是,不要忘记Windows确实有几个控制台API。从MSDN中的AllocConsole处开始查看概述,或向右跳到SetConsoleWindowInfo

答案 1 :(得分:1)

这是一个非常古老的问题,但无论如何我会发布我的答案以防将来帮助某人。 这是我在MS Windows中使用的:

int err = system("mode con lines=45 cols=115");

我在调用initscr();之前直接使用它,它就像一个魅力。 显然,这不是非常便携,但如果您正在开发的是Windows,它就可以解决问题。

答案 2 :(得分:0)

什么操作系统? (因为它是特定于操作系统的)

在Windows SetConsoleWindowInfo()

答案 3 :(得分:0)

    /* 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);