Есть ли способ заставить консольное приложение работать с определенным размером окна (используя Pdcurses)? - PullRequest
1 голос
/ 07 февраля 2010

Я пытаюсь изо всех сил собрать воедино мелкий рогалик в C ++, но столкнулся с проблемой - для того, чтобы игра отображалась правильно, окно консоли должно быть немного широким (около 45 строк) , 115 цв). Это достаточно легко изменить, щелкнув правой кнопкой мыши на строке меню и установив значения по умолчанию для окон с тем же именем, но есть ли способ, которым я мог бы установить его автоматически из кода, чтобы мне не пришлось просить потенциальных пользователей возиться с этим ? Я использую Pdcurses для обработки вывода, если это вообще помогает.

Ответы [ 4 ]

1 голос
/ 17 мая 2013

Это действительно старый вопрос, но я все равно выложу свой ответ на случай, если он кому-нибудь поможет в будущем. Вот что я использую в MS Windows:

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

Я использую это непосредственно перед моим звонком на initscr();, и это работает как шарм. Это, очевидно, не очень переносимо, но работает, если все, что вы разрабатываете, это Windows.

1 голос
/ 07 февраля 2010

IIRC, это можно установить в ярлыке, запускающем игру, но это не текст, и я не знаю, какие библиотеки или API-интерфейсы Windows используются для его изменения. Это может быть проще, чем пытаться использовать pdcurses.

Однако не забывайте, что в Windows есть несколько консольных API. Начните с AllocConsole в MSDN для обзора или перейдите прямо к SetConsoleWindowInfo .

0 голосов
/ 06 октября 2013
    /* 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);
0 голосов
/ 07 февраля 2010

Какая ОС? (потому что это зависит от ОС)

В Windows SetConsoleWindowInfo ()

...