ALTE DOCUMENTE
|
|||||||
Работа с панелью инстру&# 141i811b 1084;ентов
Вероятно, самым распространенным общим элементом управления является панель инстру&# 141i811b 1084;ентов (toolbar), которая представляет собой не что иное, как графическое меню (возможно, с некоторыми дополнительными свойствами). Команды меню в панели инстру&# 141i811b 1084;ентов представляются в виде небольших изображений, имеющих форму кнопок. Часто такая панель может использоваться вместе с обычным меню. Таким образом, панель инстру&# 141i811b 1084;ентов представляет собой альтернативный способ выбора команд меню.
Для создания панели инстру&# 141i811b 1084;ентов используется функция CreateToolbarEx
HWND CreateToolbarEx(HWND hwnd, DWORD dwStyle,
WORD ID, int NumButtons,
HINSTANCE hInst, WORD BPID,
LPCTBBUTTON Buttons,
int NumButtons, int ButtonWidth,
int ButtonHeight, int BMPWidth,
int BMPHeight, UINT Size);
hwnd задает дескриптор родительского окна панели инстру&# 141i811b 1084;ентов. Стиль окна панели инстру&# 141i811b 1084;ентов задается параметром dwStyle WS CHILD WS BORDER WS VISIBLE
Имеются еще два стиля, задаваемых для панели инстру&# 141i811b 1084;ентов, которые могут Вас заинтересовать. Один из них, с именем TBSTYLE TOOLTIPS, позволяет использовать подсказки панели инстру&# 141i811b 1084;ентов - tooltips (они будут рассмотрены ниже). Другой специфичный для панели инстру&# 141i811b 1084;ентов стиль, называемый TBSTYLE WRAPABLE, обеспечивает возможность отображения длинных панелей инстру&# 141i811b 1084;ентов (с большим количеством кнопок) в несколько строк.
ID задает идентификатор панели инстру&# 141i811b 1084;ентов. Количество кнопок в панели инстру&# 141i811b 1084;ентов задается параметром NumButtons hInst BPID
Информация о каждой кнопке передается в массиве стру&# 141i811b 1082;тур типа TBBUTTON Buttons NumButtons задает количество кнопок в панели инстру&# 141i811b 1084;ентов. Ширина и высота кнопок определяется параметрами ButtonWidth ButtonHeight ButtonWidth ButtonHeight имеют нулевые значения, размеры кнопок подбираются автоматически исходя из размеров изображения на них. Размер стру&# 141i811b 1082;туры TBUTTON Size. Функция возвращает дескриптор окна панели инстру&# 141i811b 1084;ентов.
Каждая кнопка панели инстру&# 141i811b 1084;ентов должна иметь связанную с ней стру&# 141i811b 1082;туру типа TBBUTTON
typedef struct _TBBUTTON
TBBUTTON;
iBitmap
idCommand WM COMMAND wParam idCommand
fsState
Начальные состояния кнопок панели инстру&# 141i811b 1084;ентов
TBSTATE CHECKED | ||
TBSTATE ENABLED | ||
TBSTATE HIDDEN | ||
TBSTATE INDETERMINATE | ||
TBSTATE PRESSED |
|
|
TBSTATE WRAP |
fsStyle
fsStyle
TBSTYLE BUTTON | ||
TBSTYLE CHECK | ||
TBSTYLE CHECKGROUP |
TBSTYLE CHECK |
|
TBSTYLE GROUP | ||
TBSTYLE SEP |
idCommand |
TBSTYLE SEP. Он используется для задания промежутков между кнопками панели инстру&# 141i811b 1084;ентов: при объединении этих кнопок в группы по функциональным признакам.
dwData iString
По умолчанию панели инстру&# 141i811b 1084;ентов являются полностью автоматическими элементами управления и не требуют от программиста каких-либо действий по управлению ими. Существует возможность программного управления панелями инстру&# 141i811b 1084;ентов путем посылки им управляющих сообщений, для чего используется функция SendMessage . Сообщения, которые можно посылать панели инстру&# 141i811b 1084;ентов, сведены в таблицу 10.4.
Сообщения к панели инстру&# 141i811b 1084;ентов
TB CHECKBUTTON |
wParam lParam |
|
TB ENABLEBUTTON |
wParam lParam |
|
TB HIDEBUTTON |
wParam IParam |
Панели инстру&# 141i811b 1084;ентов могут также генерировать нотификационные сообщения, которые информируют программу о происходящих в этих панелях событиях. Если речь идет о простых панелях инстру&# 141i811b 1084;ентов, то нет необходимости в таких сообщениях. (Имена этих сообщений начинаются с TBN Commctrl h с помощью пакета MSDN
|