Como exibir dicas de ferramentas para botões

Quando você especifica o estilo TBSTYLE_TOOLTIPS, a barra de ferramentas cria e gerencia um controle de dica de ferramenta. O controle de dica de ferramenta fica oculto e aparece somente quando os usuários movem o ponteiro sobre um botão da barra de ferramentas e o deixam lá por aproximadamente um segundo.

Seu aplicativo pode fornecer texto para o controle de dica de ferramenta de qualquer uma das seguintes maneiras:

  • Defina o texto da dica de ferramenta como o membro iString da estrutura TBBUTTON para cada botão. Você também deve enviar uma mensagem de TB_SETMAXTEXTROWS e definir o máximo de linhas de texto como 0, para que o texto não apareça como o rótulo do botão em vez de como uma dica de ferramenta.
  • Crie a barra de ferramentas com o estilo TBSTYLE_LIST e, em seguida, defina o TBSTYLE_EX_MIXEDBUTTONS estilo estendido. Os rótulos são mostrados apenas para botões que têm o estilo BTNS_SHOWTEXT. Para botões que não têm esse estilo, é mostrada uma dica de ferramenta que contém o texto do botão.
  • Responda ao código de notificação TTN_GETDISPINFO.
  • Responda ao código de notificação TBN_GETINFOTIP.

Um aplicativo que precisa enviar mensagens diretamente para o controle de dica de ferramenta pode recuperar o identificador para o controle usando a mensagem TB_GETTOOLTIPS. Um aplicativo pode substituir o controle de dica de ferramenta de uma barra de ferramentas por outro controle de dica de ferramenta usando a mensagem TB_SETTOOLTIPS.

A maneira mais flexível de fornecer texto de dica de ferramenta é responder ao código de notificação TTN_GETDISPINFO ou TBN_GETINFOTIP enviado pelo controle da barra de ferramentas para seu pai na forma de uma mensagem WM_NOTIFY . Por TTN_GETDISPINFO, o parâmetro lParam inclui um ponteiro para uma estrutura NMTTDISPINFO (também definida como LPTOOLTIPTEXT) que especifica o identificador de comando do botão para o qual o texto da Ajuda é necessário. Esse identificador está no membro NMTTDISPINFO.hdr.idFrom . Um aplicativo pode copiar o texto da Ajuda para a estrutura, especificar o endereço de uma cadeia de caracteres que contém o texto da Ajuda ou especificar o identificador de instância e o identificador de recurso de um recurso de cadeia de caracteres.

O que você precisa saber

Tecnologias

Pré-requisitos

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

Instruções

Exibir uma dica de ferramenta para um botão

O código de exemplo a seguir manipula o código de notificação de dica de ferramenta TTN_GETDISPINFO fornecendo texto de identificadores de recursos.

case WM_NOTIFY: 
            
    switch (((LPNMHDR) lParam)->code) 
    {
    
    case TTN_GETDISPINFO: 
        { 
            LPTOOLTIPTEXT lpttt = (LPTOOLTIPTEXT)lParam; 
            
            // Set the instance of the module that contains the resource.
            lpttt->hinst = g_hInst; 
            
            UINT_PTR idButton = lpttt->hdr.idFrom;
            
            switch (idButton) 
            { 
            case IDM_NEW: 
                lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_NEW); 
                break; 
                
            case IDM_OPEN: 
                lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_OPEN); 
                break; 
                
            case IDM_SAVE: 
                lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_SAVE); 
                break; 
            } 
            
            break; 
        } 
    }
    return TRUE;

Usando controles da barra de ferramentas

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