Udostępnij za pośrednictwem


Jak zaimplementować etykietki narzędzi balonowych

Etykietki narzędzi balonowych są podobne do standardowych etykietek narzędzi, ale są wyświetlane w stylu kreskówek "balon" z łodygą wskazującą narzędzie. Etykietki narzędzi balonowych mogą być jednowierszowe lub wielowierszowe. Są one tworzone i obsługiwane w podobny sposób jak standardowe etykietki narzędzi.

Na poniższej ilustracji przedstawiono domyślną pozycję łodygi i prostokąta. Jeśli narzędzie jest zbyt blisko górnej części ekranu, etykietka narzędzia pojawi się poniżej i po prawej stronie prostokąta narzędzia. Jeśli narzędzie jest zbyt blisko prawej strony ekranu, mają zastosowanie podobne zasady, ale etykietka narzędzia jest widoczna po lewej stronie prostokąta narzędzia.

zrzut ekranu okna dialogowego; etykietka narzędzia dymka z jednym wierszem tekstu jest wyświetlana powyżej i z prawej strony

Domyślne pozycjonowanie można zmienić, ustawiając flagę TTF_CENTERTIP w członie uFlags struktury TOOLINFO pomocniczej. W takim przypadku łodyga zwykle wskazuje środek dolnej krawędzi prostokąta narzędzia, a prostokąt tekstu jest wyświetlany bezpośrednio pod narzędziem. Łodyga dołącza się do prostokąta tekstowego w środku górnej krawędzi. Jeśli narzędzie jest zbyt blisko dolnej części ekranu, prostokąt tekstu jest wyśrodkowany nad narzędziem, a łodyga jest przymocowana do środka dolnej krawędzi.

Na poniższej ilustracji przedstawiono etykietkę narzędzia, która jest wyśrodkowana na narzędziu.

zrzut ekranu okna dialogowego; etykietka narzędzia dymka z jednym wierszem tekstu jest wyśrodkowana poniżej docelowej

Jeśli chcesz określić, gdzie wskazuje wskaźnik, ustaw flagę TTF_TRACK w członku uFlags struktury podpowiedzi TOOLINFO. Następnie określ współrzędną, wysyłając komunikat TTM_TRACKPOSITION ze współrzędnymi x i y w wartości lParam. Jeśli TTF_CENTERTIP jest również ustawiona, stem nadal wskazuje pozycję określoną przez komunikat TTM_TRACKPOSITION.

Co musisz wiedzieć

Technologie

Warunki wstępne

  • C/C++
  • Programowanie interfejsu użytkownika systemu Windows

Instrukcje

Implementowanie etykietek narzędzi balonowych

Poniższy przykładowy kod pokazuje, jak zaimplementować wyśrodkowaną wskazówkę balonową przy użyciu stylu kontrolki wskazówki balonowej 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 );

}
            

Używanie kontrolek podpowiedzi

Style etykietek narzędzi