
- •Глава 12 Современный пользовательский интерфейс
- •Основы элементов управления общего пользования
- •Инициализация библиотеки
- •Создание элементов управления общего пользования
- •Стили элементов управления общего пользования
- •Основные стили окна
- •Флаги расширенного стиля окна
- •Флаги основного стиля элемента управления общего пользования
- •Флаги стиля, специфичные для конкретного элемента управления
- •Посылка сообщений элементам управления общего пользования
- •Уведомляющие сообщения от элементов управления общего пользования
- •Элементы управления главного окна
- •Панели инструментов
- •Создание панели инструментов
- •Стили окна панели инструментов
- •Задание изображений на поверхности кнопок
- •Заполнение массива tbbutton
- •Пример создания панели инструментов
- •Перемещение и изменение размеров панели инструментов
- •Поддержка элемента управления подсказка
- •Добавление дочерних окон в панель инструментов
- •Резервирование места для дочернего окна на панели инструментов
- •Создание элементов управления на панели инструментов
- •Изменение размеров панели инструментов с дочерними окнами
- •Поддержка окон подсказки для дочерних окон панели инструментов
- •Изменение конфигурации панели инструментов
- •Строка состояния
- •Создание строки состояния
- •Перемещение и изменение размеров строки состояния
- •Поддержка просмотра меню
- •Просмотр элементов меню
- •Просмотр элементов всплывающего меню
- •Просмотр системного меню
- •Программа gadgets
Строка состояния
Строки состояния (status bar) — окна только для вывода информации, часто располагающиеся в нижней части главного окна программы. Наиболее частое использование строки состояния состоит в том, что она используется для отображения подробного описания пунктов меню при их просмотре пользователем, также как официант комментирует тот или иной пункт меню в ресторане. Когда меню не просматривается, программы часто отображают в строке состояния сопутствующую информацию. Также часто отображается состояние клавиш сдвига — <Caps Lock>, <Num Lock>, <Scroll Lock>. В программах текстовых процессоров часто отображается также текущая страница, строка, столбец.
Строка состояния может работать в двух режимах, поэтому она может использоваться для описания элементов меню и вывода другой программной информации. В режиме описания пунктов меню (простом режиме, "simple mode") строка состояния расширяется для отображения простой строки текста. В режиме отображения состояния программы в строке состояния отображается одно или более окон, каждое из которых называется "частью" строки статуса. Конкретная часть строки состояния может быть создана как ниша с рамкой, которая выглядит приподнятой над поверхностью окна строки состояния, или без рамки. Кроме того, существует возможность добавить в строку состояния дочерние окна, такие как часы или индикатор прогресса. При переключении строки состояния из простого режима в режим отображения состояния программы и обратно строка состояния сохраняет один набор скрытых окон в то время, как отображается другой набор видимых окон.
Создание строки состояния
Простейший путь создания строки состояния состоит в вызове функции CreateStatusWindow:
hwndStatusBar = CreateStatusWindow (WS_CHILD |
WS_VISIBLE | WS_CLIPSIBLINGS |
CCS_BOTTOM, "Ready", hwndParent, 2) ;
Эта функция вызывает функцию CreateWindow, которая создает дочернее окно с родительским окном hwndParent, с текстом окна "Ready" (этот текст отображается в первом окне строки состояния), идентификатором, равным 2. Флаги стиля окна заданы в первом параметре.
В приведенной ниже таблице дано описание всех флагов стилей, которые могут использоваться для создания удобной строки состояния. Вероятно, вам чаще всего придется задействовать флаг SBARS_SIZEGRIP, поскольку он задает вывод диагональной штриховки в правом углу строки состояния. Остальные флаги стиля модифицируют начальное состояние и местоположение строки состояния так, чтобы она могла находиться в другом месте, а не в нижней части рабочей области родительского окна, что определяется флагом CCS_BOTTOM.
Категория |
Флаг стиля |
Описание |
Представление |
SBARS_SIZEGRIP |
Отображает диагональную штриховку в правом углу строки состояния. Эта область служит для изменения размеров родительского окна. |
Начальное положение |
CCS_TOP |
Помещает строку состояния в верхнюю часть родительского окна. |
|
CCS_BOTTOM |
Помещает строку состояния в нижнюю часть родительского окна (по умолчанию). |
|
CCS_NOMOVEY |
Запрещает перемещение относительно оси y. |
Запрет автоматического изменения размеров и местоположения |
CCS_NOPARENTALIGN |
Строка состояния устанавливает свою высоту (cy). Но не устанавливает свое местоположение (x,y) и ширину (cx). Для соответствующей обработки необходимо после создания посылать сообщение об изменении размеров. |
(продолжение)
Категория |
Флаг стиля |
Описание |
|
CCS_NORESIZE |
Запрещает все автоматические перемещения и изменения размеров. Это запрещает следующие флаги стиля: CCS_TOP, CCS_BOTTOM, CCS_NOMOVEY и CCS_NOPARENTALIGN. Вы должны явно задать размеры и положение строки состояния. |