Книга: Основы программирования в Linux
Структура WINDOW
Структура WINDOW
Несмотря на то, что мы уже упоминали стандартный экран stdscr
, пока у вас не было необходимости в его применении, поскольку почти все рассматриваемые до сих пор функции полагали, что они работают на экране stdscr
, и не требовалось передавать его как параметр.
stdscr
— это специальный случай структуры WINDOW
, как stdout — специальный случай файлового потока. Обычно структура WINDOW
объявляется в файле curses.h и, несмотря на то, что ее просмотр может быть очень поучителен, программы никогда не используют эту структуру напрямую, т.к. она может различаться в разных реализациях.
Вы можете создать и уничтожить окно с помощью вызовов функций newwin и delwin:
#include <curses.h>
WINDOW *newwin(int num_of_lines, int num_of_cols, int start_y, int start_x);
int delwin(WINDOW *window_to_delete);
Функция newwin
создает новое окно в позиции экрана (start_y, int start_x
) и с заданным. количеством строк и столбцов. Она возвращает указатель на новое окно или NULL
, если создать окно невозможно. Если вы хотите, чтобы правый нижний угол нового окна совпадал с правым нижним углом экрана, можно задать нулевое количество строк и столбцов. Все окна должны располагаться в пределах экрана. Функция newwin
завершится аварийно, если какая-либо часть окна окажется за пределами экрана. Новое окно, созданное newwin
, абсолютно независимо от всех уже имеющихся окон. По умолчанию оно помещается поверх существующих окон, скрывая (но не изменяя) их содержимое.
Функция delwin
удаляет окно, созданное ранее с помощью функции newwin
. Поскольку при вызове newwin
, по всей вероятности, выделяется память, следует всегда удалять окна, когда в них больше нет нужды.
Примечание
Следите за тем, чтобы никогда не было попыток удалить собственные окна библиотеки curses: stdscr
и curscr
!
Когда новое окно создано, как записать в него информацию? У всех уже рассмотренных функций есть универсальные версии, действующие в заданных окнах, и для удобства в них также включено перемещение курсора.
- 1.5 Структура драйвера устройства Windows
- Структура документа и вставка оглавления
- Структура книги
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- InterBase Super Server для Windows
- Физическая структура базы данных
- Логическая структура базы данных InterBase
- Интеграция с платформой Windows NT
- Оптимальная структура хранения записей
- Часы в Windows показывают неправильное время
- Классическая архитектура на Windows NT (Yaffil CS)
- Новая структура данных на диске: ODS11