Partilhar via


Como usar Hot-Tracking com barras de ferramentas

Quando um ponteiro do mouse passa sobre um item, o item fica quente. Se o rastreamento a quente estiver ativado, o item ativo será realçado. Uma barra de ferramentas criada com o estilo TBSTYLE_FLAT ou uma barra de ferramentas que usa Estilos Visuais, oferece suporte ao rastreamento de ativos por padrão.

O hot-tracking requer que se criem listas de imagens; portanto, não se pode usar a mensagem TB_ADDBITMAP ou a função CreateToolbarEx para criar a sua barra de ferramentas.

Quando o mouse passa 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 o hot-tracking ativado; o ponteiro do mouse estava pairando sobre o botão Salvar quando a captura de tela foi tirada.

captura de tela de uma caixa de diálogo com uma barra de ferramentas de três itens; O ícone selecionado é delineado

Se quiser que o bitmap de um botão da barra de ferramentas se modifique quando o estado do controlo mudar, armazene as diferentes imagens em listas de imagens . Por exemplo, alguns aplicativos têm botões preto e branco da barra de ferramentas 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, uma aplicação tem uma lista de imagens padrão, desativada e de rastreamento dinâmico. Para definir e recuperar listas de imagens para botões ativos da barra de ferramentas, use as mensagens TB_SETHOTIMAGELIST e TB_GETHOTIMAGELIST.

O que precisa de saber

Tecnologias

Pré-requisitos

  • C/C++
  • Programação da interface do usuário do Windows

Instruções

Usar 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.

Usando os controlos da barra de ferramentas

demonstração de controles comuns do Windows (CppWindowsCommonControls)