Операционная система Windows 95 для программиста
© Александр Фролов, Григорий Фролов
Том 22, М.: Диалог-МИФИ, 1993, 271 стр.
2 ОРГАНЫ TOOLBAR И STATUSBAR
Для того чтобы ваше приложение соответствовало
современным стандартам и было удобно в работе, к
его главному окну желательно добавить такие
органы управления, как Toolbar и Statusbar. Из предыдущей
главы вы узнали, как они выглядят. Теперь пришло
время убедиться в том, что при использовании
программного интерфейса Microsoft Windows 95 добавление
органов управления Toolbar и Statusbar не является такой
сложной задачей, как это было при работе с
16-разрядным API Microsoft Windows версии 3.1.
Из чего "сделаны" новые органы управления?
Как и большинство других объектов в Microsoft Windows,
органы управления создаются на базе
предопределенных классов окон. Для них внутри
Microsoft Windows имеются функции окон, реализующие все
возможности и определяющие внешний вид органов
управления.
Конкретнее: все, необходимое для создания
органов управления в среде Microsoft Windows 95 и Microsoft
Windows NT, расположено в библиотеке динамической
загрузки COMCTL32.DLL .
Создать орган управления не сложнее, чем
создать обыкновенное окно. Более того, для этого
можно использовать привычные вам функции CreateWindow
или CreateWindowEx, указывая зарезервированные имена
классов. Например, Toolbar и Statusbar создаются на базе
классов, соответственно, TOOLBARCLASSNAME и STATUSCLASSNAME .
Дополнительно вы можете указывать различные
стили окна, определяющие расположение и
поведение органов управления.
В программном интерфейсе Win32 имеются
специальные функции, облегчающие создание новых
органов управления. Например, вы можете создать
Toolbar с помощью функции CreateToolbarEx , а Statusbar - с
помощью функции CreateStatusWindow .
После того как орган управления будет создан,
вы получите его идентификатор. Пользуясь этим
идентификатором, вы сможете управлять органом,
посылая ему сообщения функцией SendMessage. Например,
вы можете добавлять кнопки в Toolbar или удалять их
оттуда, блокировать или разблокировать кнопки,
отображать текст в одной из областей окна Statusbar и
т. д.
Когда приложение создает орган управления, оно
сообщает соответствующей функции идентификатор
родительского окна (т. е. окна, которое создает
орган управления). Когда пользователь работает с
органом управления, последний посылает в
родительское окно извещения в виде сообщений
WM_COMMAND или WM_NOTIFY .
Так как орган Toolbar обычно дублирует самые
нужные строки главного меню приложения,
сообщения WM_COMMAND, создаваемые этим органом, ничем
не отличаются от аналогичных сообщений,
поступающих от главного меню приложения.
Разумеется, вы сами определяете коды сообщений
WM_COMMAND для каждой кнопки органа Toolbar.
Сообщение WM_NOTIFY посылается родительскому окну
для извещения о том, что пользователь выполняет
какие-либо действия с органом управления,
например, добавляет в него новую кнопку либо
удаляет ненужную.
Поэтому все, что приложение должно сделать для
использования органа управления, - это создать
его, вызвав одну из перечисленных ранее функций,
и обеспечить обработку нескольких сообщений. А
это, согласитесь, совсем не сложно.
|