Орган управления TOOLBAR
Только что вы узнали об акселераторах, используемых для упрощения работы с меню. В современных приложениях Windows широко используется еще один важный элемент пользовательского интерфейса, облегчающий работу с меню (и в некоторых случаях даже полностью заменяющий меню). Речь идет об органе управления, который часто называется Toolbar.
На рис. 1.18 показан Toolbar, расположенный под главным меню приложения Microsoft Word for Windows версии 2.0.
Рис. 1.18. Орган управления Toolbar в текстовом процессоре Microsoft Word for Windows версии 2.0
Toolbar с точки зрения пользователя представляет собой ни что иное, как набор кнопок с нарисованными на их поверхности пиктограммами. Каждая такая кнопка соответствует определенной строке в том или ином временном меню приложения. Например, самая левая кнопка на рис. 1.18 соответствует строке "New" из меню "File". Однако с кнопкой может быть связана и такая функция, для которой нет соответствия в меню приложения.
С точки зрения программиста орган управления Toolbar может представлять собой отдельный объект в виде дочернего окна с расположенными на нем кнопками или совокупность кнопок, созданных на поверхности главного окна приложения. Можно использовать и другие варианты построения Toolbar. К сожалению, в операционной системе Microsoft Windows версии 3.1 нет стандартного органа управления, способного выполнять функции Toolbar, поэтому программист должен создавать его самостоятельно.
Вы можете сделать Toolbar из стандартных кнопок, однако обычно используются кнопки, которые рисует родительское окно (т. е. имеющие стиль BS_OWNERDRAW).
В приложении SMARTPAD мы создали Toolbar как дочернее окно с расположенными на его поверхности кнопками стиля BS_OWNERDRAW. Когда пользователь нажимает на одну из кнопок, расположенных в окне Toolbar, в функцию родительского окна, создавшего Toolbar, приходит сообщение WM_COMMAND. Параметр wParam этого сообщения однозначно соответствует расположению кнопки в окне Toolbar.
Наш Toolbar создан как класс в терминах языка программирования C++. Вы можете изменять его, приспосабливая для ваших нужд, или определять на его основе новые классы. Например, можно сделать Toolbar, расположенный в окне приложения по вертикали, или создать для Toolbar отдельное перекрывающееся окно.