Далее вы должны создать массив структур TBBUTTON , который описывает кнопки и разделители между группами кнопок. В этом массиве необходимо зарезервировать по одной структуре для каждой кнопки и для каждого разделителя групп кнопок.
В файле commctrl.h находится такое определение структуры TBBUTTON:
typedef struct _TBBUTTON { int iBitmap; int idCommand; BYTE fsState; BYTE fsStyle; DWORD dwData; int iString; } TBBUTTON, NEAR * PTBBUTTON, FAR * LPTBBUTTON; typedef const TBBUTTON FAR * LPCTBBUTTON;
В поле iBitmap каждой структуры массива необходимо записать номер кнопки (нумерация начинается с нуля). Для разделителя в этом поле следует указать нулевое значение.
В поле idCommand вы должны записать идентификатор, который будет передаваться родительскому окну с сообщением WM_COMMAND, когда пользователь нажмет соответствующую кнопку. Если элемент массива структур TBBUTTON описывает разделитель группы кнопок, в поле idCommand вам нужно записать нулевое значение.
Поле fsState должно содержать флаг исходного состояния кнопки:
Флаг | Описание |
TBSTATE_ENABLED | Кнопка находится в разблокированном состоянии. Если этот флаг не установлен, кнопка заблокирована и отображается серым цветом |
TBSTATE_CHECKED | Кнопка изображается в нажатом состоянии. Этот флаг используется для кнопок с фиксацией |
TBSTATE_HIDDEN | Скрытая кнопка, не отображается |
TBSTATE_INDETERMINATE | Кнопка отображается серым цветом |
TBSTATE_PRESSED | Кнопка изображается в нажатом состоянии |
TBSTATE_WRAP | Кнопки, расположенные после той, что имеет флаг TBSTATE_WRAP, отображаются на новой строке. Таким образом, вы можете создать многострочный Toolbar . Этот флаг можно указывать только тогда, когда установлен флаг TBSTATE_ENABLED |
Теперь вам не нужно готовить отдельные изображения для разных состояний кнопок, так как при необходимости Toolbar изменяет внешний вид кнопок автоматически.
После того как Toolbar будет создан, приложение может изменять состояние кнопки, посылая окну Toolbar сообщение TB_SETSTATE. Позже мы перечислим сообщения, которые можно посылать окну Toolbar.