- •Часть 2 (продолжение): Прикладное программирование в Windows
- •Глава 8. Виртуальное окно: работа с текстом
- •8.1. Оконные координаты, цвета, отображение строк
- •Кодировка rgb-значений
- •Размеры системных метрик
- •8.2. Виртуальное окно
- •Способы заполнения прямоугольной области
- •8.3. Изменение шрифтов
- •Макроимена распространенных шрифтов
- •8.4. Создание собственных шрифтов
- •Глава 9. Программирование графики
- •9.1. Логическая система координат
- •Рекомендуемый самый яркий состав цветов
- •9.2. Пиксели, линии, дуги, прямоугольники, эллипсы и секторы
- •9.3. Работа с перьями и кистями
- •Типы линий, создаваемых пером
- •9.4. Технология виртуального окна
- •9.5. Режимы отображения и области вывода
- •Текущий режим отображения (mappind mode)
- •Глава 10. Работа с панелями инструментов
- •10.1. Общие элементы управления
- •Общие элементы управления
- •10.2. Подключение и инициализация общих элементов управления
- •10.3. Работа с панелью инструментов
- •Начальные состояния кнопок панели инструментов
- •Стиль кнопки определяется (значения поля fsStyle)
- •Сообщения к панели инструментов
- •10.4. Создание растрового изображения для панели инструментов
- •10.5. Включение подсказок
- •Глава 11. Спины, ползунки и индикаторы процессов
- •11.1. Работа со спином
- •Стили «up-down control»
- •Сообщения, которые можно посылать спину
- •11.2. Создание спина с «приятельским» окном
- •11.3. Работа с ползунком
- •Значения стилей для ползунка
- •Перечень сообщений, которые можно посылать ползунку
- •Перечень нотификационных сообщения ползунка
- •11.4. Индикатор процесса
- •Управляющие сообщения индикатору
- •Глава 12. Многозадачность: процессы и потоки
- •12.1. Создание нового процесса (отдельной задачи)
- •Разрешенные значения поля dwFlags
- •12.2. Многопотоковые программы
- •12.3. Работа с несколькими потоками
- •12.4. Синхронизация процессов и потоков: семафоры
- •12.5. Обработка событий
- •Глава 13. Приемы программного управления вычислительным процессом
- •13.1. Использование функций Проводника Explorer для работы в файловой системе
- •Управляющая информация Проводника
- •Режимы обработки файлов
- •13.2. Создание собственных динамических библиотек (dll-файлов)
- •13.3. Работа с буфером обмена Clipboard
- •Функции подсистемы Clipboard
- •Свойства выделяемого блока памяти
- •Форматы и типы данных
- •Литература
Начальные состояния кнопок панели инструментов
№ |
Состояние |
Значение |
1 |
TBSTATE_CHECKED |
Кнопка нажата |
2 |
TBSTATE_ENABLED |
Кнопка активна (разрешена) |
3 |
TBSTATE_HIDDEN |
Кнопка скрыта и неактивна (запрещена) |
4 |
TBSTATE_INDETERMINATE |
Кнопка закрашена серым цветом и неактивна |
5 |
TBSTATE_PRESSED |
Кнопка нажата |
6 |
TBSTATE_WRAP |
Все следующие кнопки будут отображаться в следующей строке |
Стиль кнопки определяется значением поля fsStyle. Он может представлять собой любую из имеющих смысл комбинаций следующих значений (табл. 10.3):
Таблица 10.3
Стиль кнопки определяется (значения поля fsStyle)
№ |
Стиль |
Эффект |
1 |
TBSTYLE_BUTTON |
Обычная кнопка |
2 |
TBSTYLE_CHECK |
При каждом нажатии кнопки ее состояние изменяется на противоположное (нажата-отпущена). |
3 |
TBSTYLE_CHECKGROUP |
Кнопка со стилем TBSTYLE_CHECK в группе кнопок, представляющей набор параметров, из которых можно выбрать только один |
4 |
TBSTYLE_GROUP |
Обычная кнопка в группе кнопок, представляющей набор параметров, из которых можно выбрать только один |
5 |
TBSTYLE_SEP |
Задание интервала между кнопками. При задании этого стиля значение idCommand должно быть равно 0 |
Обратите внимание на стиль TBSTYLE_SEP. Он используется для задания промежутков между кнопками панели инструментов: при объединении этих кнопок в группы по функциональным признакам.
Поле dwData может содержать дополнительную информацию, определяемую программистом. Поле iString содержит индекс строки, ассоциированной с кнопкой. Использовать это поле не обязательно. Если это поле не используется, его значение должно быть равно 0.
По умолчанию панели инструментов являются полностью автоматическими элементами управления и не требуют от программиста каких-либо действий по управлению ими. Существует возможность программного управления панелями инструментов путем посылки им управляющих сообщений, для чего используется функция SendMessage(). Сообщения, которые можно посылать панели инструментов, сведены в таблицу 10.4.
Таблица 10.4
Сообщения к панели инструментов
№ |
Сообщение |
Назначение |
1 |
TB_CHECKBUTTON |
Нажать или отпустить кнопку. Параметр wParam должен содержать идентификатор кнопки. lParam равен 0, если кнопка должна быть отпущена, либо 1, если она должна быть нажата |
2 |
TB_ENABLEBUTTON |
Запретить либо разрешить кнопку. Параметр wParam должен содержать идентификатор кнопки. lParam равен 0, если кнопка должна быть запрещена, и 1, если она должна быть разрешена |
3 |
TB_HIDEBUTTON |
Скрыть или отобразить кнопку. Параметр wParam должен содержать идентификатор кнопки. IParam равен 1, если необходимо скрыть кнопку, и 0, если требуется ее отобразить |
Панели инструментов могут также генерировать нотификационные сообщения, которые информируют программу о происходящих в этих панелях событиях. Если речь идет о простых панелях инструментов, то нет необходимости в таких сообщениях. (Имена этих сообщений начинаются с TBN_. Более подробную информацию о них Вы можете получить из файла Commctrl.h, с помощью пакета MSDN или Руководства программиста.)
