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 :
- Définissez le texte de l’info-bulle en tant que membre iString de la structure TBBUTTON pour chaque bouton. Vous devez également envoyer un message TB_SETMAXTEXTROWS et définir le nombre maximal de lignes de texte sur 0, afin que le texte n’apparaisse pas comme étiquette de bouton plutôt que comme une info-bulle.
- Créez la barre d’outils avec le style TBSTYLE_LIST , puis définissez le style étendu TBSTYLE_EX_MIXEDBUTTONS . Les étiquettes s’affichent uniquement pour les boutons qui ont le style BTNS_SHOWTEXT . Pour les boutons qui n’ont pas ce style, une info-bulle contenant le texte du bouton s’affiche.
- Répondez au code de notification TTN_GETDISPINFO .
- Répondez au code de notification TBN_GETINFOTIP .
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;
Rubriques connexes