Sdílet prostřednictvím


Implementace bublinových popisků

Popisy bublin se podobají standardním popisům, ale zobrazují se v kresleném stylu "bublina" se stopou ukazující na nástroj. Popisy bublin můžou být jednoduché nebo víceřádkové. Vytvářejí se a zpracovávají stejným způsobem jako standardní popisy.

Výchozí umístění kmene a obdélníku je znázorněno na následujícím obrázku. Pokud je nástroj příliš blízko horního okraje obrazovky, zobrazí se popisek níže a vpravo od obdélníku nástroje. Pokud je nástroj příliš blízko pravé straně obrazovky, platí podobné principy, ale popis se zobrazí nalevo od obdélníku nástroje.

snímek obrazovky dialogového okna; nad a vpravo od cíle se zobrazí bublinový popis s jedním řádkem textu.

Výchozí umístění můžete změnit nastavením příznaku TTF_CENTERTIP v uFlags parametru struktury TOOLINFO. V takovém případě kmen obvykle odkazuje na střed dolního okraje obdélníku nástroje a textový obdélník se zobrazí přímo pod nástrojem. Kmen se připojí k textovému obdélníku uprostřed horního okraje. Pokud je nástroj příliš blízko dolní části obrazovky, je obdélník textu vystředěn nad nástrojem a stopka se připojí ke středu dolního okraje.

Následující obrázek znázorňuje popis, který je na nástroji zarovnaný na střed.

snímek obrazovky dialogového okna; popis bubliny s jedním řádkem textu se zobrazí středově pod cílem

Chcete-li určit, kam míří stopka, nastavte příznak TTF_TRACK v členu uFlags struktury popisu nástroje TOOLINFO. Souřadnice pak zadáte odesláním TTM_TRACKPOSITION zprávy se souřadnicemi x a y v hodnotě lParam. Pokud je nastavena i TTF_CENTERTIP, kmen stále odkazuje na pozici určenou TTM_TRACKPOSITION zprávou.

Co potřebujete vědět

Technologie

Požadavky

  • C/C++
  • Programování uživatelského rozhraní systému Windows

Instrukce

Implementujte bublinové popisky

Následující příklad kódu ukazuje, jak implementovat vycentrovanou bublinovou nápovědu pomocí stylu ovládacího prvku 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 );

}
            

použití ovládacích prvků popisů

styly popisů