Comment afficher les info-bulles pour les boutons

Lorsque vous spécifiez le style TBSTYLE_TOOLTIPS , la barre d’outils crée et gère un contrôle d’info-bulle. Le contrôle d’info-bulle est masqué et s’affiche uniquement lorsque les utilisateurs déplacent le pointeur sur un bouton de barre d’outils et le laissent là pendant environ une seconde.

Votre application peut fournir du texte au contrôle d’info-bulle de l’une des manières suivantes :

Une application qui doit envoyer des messages directement au contrôle d’info-bulle peut récupérer le handle du contrôle à l’aide du message TB_GETTOOLTIPS . Une application peut remplacer le contrôle d’info-bulle d’une barre d’outils par un autre contrôle d’info-bulle à l’aide du message TB_SETTOOLTIPS .

Le moyen le plus flexible de fournir du texte d’info-bulle consiste à répondre au code de notification TTN_GETDISPINFO ou TBN_GETINFOTIP envoyé par le contrôle de barre d’outils à son parent sous la forme d’un message WM_NOTIFY . Par TTN_GETDISPINFO, le paramètre lParam inclut un pointeur vers une structure NMTTDISPINFO (également définie comme LPTOOLTIPTEXT) qui spécifie l’identificateur de commande du bouton pour lequel le texte d’aide est nécessaire. Cet identificateur se trouve dans le membre NMTTDISPINFO.hdr.idFrom . Une application peut copier le texte d’aide dans la structure, spécifier l’adresse d’une chaîne contenant le texte d’aide ou spécifier le instance handle et l’identificateur de ressource d’une ressource de chaîne.

Bon à savoir

Technologies

Prérequis

  • C/C++
  • Programmation de l’interface utilisateur Windows

Instructions

Afficher une info-bulle pour un bouton

L’exemple de code suivant gère le code de notification d’info-bulle TTN_GETDISPINFO en fournissant du texte provenant des identificateurs de ressource.

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;

Utilisation des contrôles de barre d’outils

Démonstration des contrôles communs Windows (CppWindowsCommonControls)