Skip to content

5. Несколько слов о окнах

lomaster edited this page Apr 13, 2023 · 1 revision

Прежде чем мы погрузимся в бесчисленные функции ncurses, позвольте мне прояснить несколько моментов, касающихся окон. Окна подробно описаны в следующих разделах.

Окно - это воображаемый экран, определяемый системой curses. Окно не означает окно с рамкой, которое вы обычно видите на платформах Win9X. Когда curses инициализируется, он создает окно по умолчанию с именем stdscr, которое представляет ваш экран 80x25 (или размер окна, в котором вы работаете). Если вы выполняете простые задачи, такие как печать нескольких строк, чтение ввода и т.д., вы можете спокойно использовать это единственное окно для всех ваших целей. Вы также можете создавать окна и вызывать функции, которые явно работают с указанным окном.

Например, если вы вызываете:

printw("Hi There !!!");
refresh();

Он печатает строку на stdscr в текущей позиции курсора. Аналогично вызов функции refresh() работает только на stdscr... Допустим, вы создали окна, тогда вам нужно вызвать функцию с добавлением 'w' к обычной функции:

wprintw(win, "Hi There !!!");
wrefresh(win);

Как вы увидите в остальной части документа, именование функций следует тому же соглашению. Для каждой функции обычно существует еще три функции.

printw(string);                     /* Печать на stdscr в текущей позиции курсора */
mvprintw(y, x, string);             /* Переместиться на (y, x) и вывести строку */
wprintw(win, string);               /* Печать на окне win в текущей позиции курсора */
                                    /* в окне */
mvwprintw(win, y, x, string);       /* Перемещение на (y, x) относительно окна */
                                    /* координаты и затем печатать */