Использование горячего отслеживания с панелями инструментов
При наведении указателя мыши на элемент становится горячим. Если включена горячая отслеживание, выделен горячий элемент. Панель инструментов, созданная с помощью стиля ТБSTYLE_FLAT или использующего визуальные стили, поддерживает горячее отслеживание по умолчанию.
Для горячего отслеживания необходимо создать списки изображений; Поэтому для создания панели инструментов нельзя использовать сообщение ТБ_ADDBITMAP или функцию CreateToolbarEx.
При наведении указателя мыши на кнопку панели инструментов кнопка описана, чтобы выделить ее. На следующем рисунке показана панель инструментов с поддержкой горячего отслеживания; Указатель мыши навел указатель мыши на кнопку "Сохранить", когда был снят снимок экрана.
Если вы хотите, чтобы растровое изображение кнопки панели инструментов изменилось при изменении состояния элемента управления, сохраните различные изображения в списках изображений. Например, некоторые приложения имеют черные и белые кнопки панели инструментов, которые становятся цветными при выборе. Два разных изображения хранятся в списках изображений. Панели инструментов поддерживают использование до трех списков изображений. Как правило, приложение имеет список изображений по умолчанию, отключен и горячих отслеживания. Чтобы задать и получить списки изображений для кнопок горячей панели инструментов, используйте ТБ_SETHOTIMAGELIST и ТБ_GETHOTIMAGELIST сообщения.
Это важно знать
Технологии
Необходимые компоненты
- C/C++
- Программирование пользовательского интерфейса Windows
Instructions
Использование горячего отслеживания с помощью панели инструментов
В следующем примере кода создается, заполняется и назначается список изображений для горячих кнопок.
// Create the image list, himlHot.
g_himlHot = ImageList_Create(MYICON_CX,MYICON_CY,ILC_COLOR8,0,4);
// Load a bitmap from a resource file, and add the images to the image list.
// Note that the bitmap contains four images.
hBitmapHot = LoadBitmap(g_hinst, MAKEINTRESOURCE(IDB_HOT));
ImageList_Add(g_himlHot, hBitmapHot, NULL);
// Set the image list.
SendMessage(hwndTB, TB_SETHOTIMAGELIST, 0, (LPARAM)g_himlHot);
// Loop to fill the array of TBBUTTON structures.
for(i=0;i<MAX_BUTTONS;i++)
{
tbArray[i].iBitmap = i; // Bitmap from image list.
tbArray[i].idCommand = IDM_BUTTONSTART + i;
tbArray[i].fsState = TBSTATE_ENABLED;
tbArray[i].fsStyle = BTNS_DROPDOWN;
tbArray[i].dwData = 0;
tbArray[i].iString = i;
}
DeleteObject(hBitmapHot); // Delete the loaded bitmap.
См. также