Como usar o Hot-Tracking com barras de ferramentas
Quando um ponteiro do mouse passa o mouse sobre um item, o item fica quente. Se o hot-tracking estiver habilitado, o hot item será realçado. Uma barra de ferramentas criada com o estilo TBSTYLE_FLAT ou que usa estilos visuais, oferece suporte ao rastreamento a quente por padrão.
O rastreamento a quente requer que você crie listas de imagens; portanto, você não pode usar a mensagem TB_ADDBITMAP ou a função CreateToolbarEx para criar sua barra de ferramentas.
Quando o mouse passa o mouse sobre um botão da barra de ferramentas, o botão é delineado para realçá-lo. A ilustração a seguir mostra uma barra de ferramentas com rastreamento a quente habilitado; o ponteiro do mouse estava pairando no botão Salvar quando a captura de tela foi feita.
Se você quiser que um bitmap de botão da barra de ferramentas seja alterado quando o estado do controle for alterado, armazene as imagens diferentes em listas de imagens. Por exemplo, alguns aplicativos têm botões da barra de ferramentas em preto e branco que ficam coloridos quando são selecionados. As duas imagens diferentes são armazenadas em listas de imagens. As barras de ferramentas suportam o uso de até três listas de imagens. Normalmente, um aplicativo tem uma lista de imagens padrão, desabilitada e de rastreamento a quente. Para definir e recuperar listas de imagens para botões da barra de ferramentas quente, use as mensagens TB_SETHOTIMAGELIST e TB_GETHOTIMAGELIST.
O que você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Usar o Hot-Tracking com uma barra de ferramentas
O exemplo de código a seguir cria, preenche e atribui uma lista de imagens para botões de atalho.
// 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.
Tópicos relacionados