Шаг 977 - CToolBar

977_1.gif (1065 b)

Объекты класса CToolBar - области управления, которые имеют строку растровых кнопок и разделителей. Кнопки могут действовать подобно кнопкам, кнопкам переключателя, или "радио" кнопкам. CToolBar объекты - обычно внедряемые элементы объектов рамочного окна, полученных из класса CFrameWnd или CMDIFrameWnd.

CToolBar::GetToolBarCtrl, новая функция для MFC 4.0, позволяет Вам пользоваться преимуществом Windows поддержки общих элементов управления для настройки инструментальной панели и дополнительных функциональных возможностей. CToolBar функции дают Вам большинство функциональных возможностей Windows общих средств управления, однако, когда Вы вызываете GetToolBarCtrl, Вы можете давать вашим инструментальным панелям даже большее количество характеристик инструментальных панелей Windows 95. Когда Вы вызываете GetToolBarCtrl, это возвратит ссылку объекту CToolBarCtrl. См. CToolBarCtrl для подробной информации относительно проектирования инструментальных панелей, использующих Windows общие средства управления. Для более общей информации относительно общих средств управления, см. Общие Средства управления в Windows 95 SDK Справочник программиста.

Visual C++ обеспечивает Вас двумя методами создания инструментальную панель. Чтобы создавать ресурс инструментальной панели, используюя Редактор Ресурса, следуйте за этими шагами:

  1. Создайте ресурс инструментальной панели.
  2. Создайте объект CToolBar.
  3. Вызовите Create (или CreateEx) функцию, чтобы создать инструментальную панель Windows, и прикрепить ее к объекту CToolBar.
  4. Вызовите LoadToolBar, чтобы загрузить ресурс инструментальной панели.

Иначе, следуйте за этими шагами:

  1. Создайте объект CToolBar.
  2. Вызовите Create (или CreateEx) функцию, чтобы создать инструментальную панель Windows, и прикрепите это к объекту CToolBar.
  3. Вызовите LoadBitmap, чтобы загрузить точечный рисунок, который содержит изображения кнопки панели.

Вызовите SetButtons, чтобы установить стиль кнопки и сопоставлять каждую кнопку с изображением в точечном рисунке.

Все изображения кнопки в инструментальной панели принимаются из одного точечного рисунка, который должен содержать одно изображение для каждой кнопки. Все изображения должны иметь одинаковый размер, значение по умолчанию - 16 пикселей ширины и 15 пикселей высоты. Изображения должны быть рядом в точечном рисунке. Функция SetButtons берет указатель на массив ID элементов управления целое число, которое определяет число элементов в массиве. Функция устанавливает каждую кнопку ID к значению соответствующего элемента массива и назначает каждой кнопке индекс изображения, который определяет позицию изображения кнопки в точечном рисунке. Если элемент массива имеет значение ID_SEPARATOR, никакой индекс изображения не назначен.

Порядок изображений в точечном рисунке - обычно порядок, в котором они продвигаются на экране, но Вы можете использовать функцию SetButtonInfo, чтобы изменить связь между порядком изображения и порядком вывода.

Все кнопки в инструментальной панели - тот же самый размер. Значение по умолчанию - 24 x 22 пикселя, в соответствии с Windows Interface Guidelines for Software Design. Любое дополнительное пространство между изображением и размерностями кнопки используется, чтобы формировать рамку вокруг изображения.

Каждая кнопка имеет одно изображение. Различные состояния кнопки и стили (нажатая, заблокированная, неопределенная) сгенерированы из этого одного изображение. Хотя точечные рисунки могут быть любого цвета, Вы можете достигать самых лучших результатов с изображениями в черном и оттенками серого.

Кнопки панели подражают кнопки по умолчанию. Однако, кнопки панели могут также подражать кнопкам переключателя или "радио" кнопки. Кнопки Переключателя имеют три состояния: выбранный, очищенный, и неопределенный. "Радио" кнопки имеют только два состояния: выбранный и очищенный.

Чтобы устанавливать индивидуальную кнопку или стиль разделителя без того, чтобы указать на массив, вызовите GetButtonStyle, чтобы получить стиль, и затем вызывать SetButtonStyle вместо SetButtons. SetButtonStyle наиболее полезен, когда Вы хотите изменять стиль кнопки во время выполнения.

Чтобы назначать текст появляться на кнопке, вызовите GetButtonText, чтобы получить текст, и затем вызовите SetButtonText, чтобы установить текст.

Чтобы создавать кнопку переключателя, назначьте это стиль TBBS_CHECKBOX, или используйте объект CCMDUI SetCheck функции в ON_UPDATE_COMMAND_UI драйвере. Вызов SetCheck направляет кнопку в кнопку переключателя. Передайте SetCheck параметр 0 для не выбранной, 1 для выбранной, или 2 для неопределенного. Чтобы создавать "радио" кнопку, вызовите объект CCmdUI SetRadio функцией из ON_UPDATE_COMMAND_UI драйвера. Передайте SetRadio параметр 0 для не выбранной или отличного от выбранной. Чтобы обеспечивать группу радио взаимно исключительным поведением, Вы должны иметь ON_UPDATE_COMMAND_UI драйверы для всех кнопок в группе.

#include <afxext.h>

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.02.2002