Partager via


Comment implémenter des info-bulles bulles

Les info-bulles sont similaires aux info-bulles standard, mais sont affichées dans un « ballon » de type dessin animé avec une tige pointant vers l’outil. Les info-bulles peuvent être monolignes ou multilignes. Elles sont créées et gérées de la même façon que les info-bulles standard.

La position par défaut de la tige et du rectangle est illustrée dans l’illustration suivante. Si l’outil est trop proche du haut de l’écran, l’info-bulle apparaît en dessous et à droite du rectangle de l’outil. Si l’outil est trop proche du côté droit de l’écran, des principes similaires s’appliquent, mais l’info-bulle apparaît à gauche du rectangle de l’outil.

capture d’écran d’une boîte de dialogue ; une info-bulle avec une ligne de texte apparaît au-dessus et à droite de la cible

Vous pouvez modifier le positionnement par défaut en définissant l’indicateur TTF_CENTERTIP dans le membre uFlags de la structure TOOLINFO de l’info-bulle. Dans ce cas, la tige pointe normalement vers le centre du bord inférieur du rectangle de l’outil, et le rectangle de texte s’affiche directement sous l’outil. La tige s’attache au rectangle de texte au centre du bord supérieur. Si l’outil est trop proche du bas de l’écran, le rectangle de texte est centré au-dessus de l’outil et la tige s’attache au centre du bord inférieur.

L’illustration suivante montre une info-bulle centrée sur l’outil.

capture d’écran d’une boîte de dialogue ; une info-bulle avec une ligne de texte apparaît centrée sous la cible

Si vous souhaitez spécifier l’emplacement des points de tige, définissez l’indicateur TTF_TRACK dans le membre uFlags de la structure TOOLINFO de l’info-bulle. Vous spécifiez ensuite la coordonnée en envoyant un message TTM_TRACKPOSITION , avec les coordonnées x et y dans la valeur lParam . Si TTF_CENTERTIP est également défini, la tige pointe toujours vers la position spécifiée par le message TTM_TRACKPOSITION .

Bon à savoir

Technologies

Prérequis

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

Instructions

Implémenter des info-bulles

L’exemple de code suivant montre comment implémenter une info-bulle centrée à l’aide du style de contrôle d’info-bulle TTS_BALLOON .

hwndToolTips = CreateWindow(TOOLTIPS_CLASS, NULL, 
                            WS_POPUP | TTS_NOPREFIX | TTS_BALLOON, 
                            0, 0, 0, 0, NULL, NULL, g_hinst, NULL);

if (hwndTooltip)
{
    TOOLINFO ti;

    ti.cbSize   = sizeof(ti);
    ti.uFlags   = TTF_TRANSPARENT | TTF_CENTERTIP;
    ti.hwnd     = hwnd;
    ti.uId      = 0;
    ti.hinst    = NULL;
    ti.lpszText = LPSTR_TEXTCALLBACK;

    GetClientRect(hwnd, &ti.rect);

    SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );

}
            

Utilisation des contrôles d’info-bulle

Styles d’info-bulle