Udostępnij za pośrednictwem


Jak utworzyć podpowiedź dla prostokątnego obszaru

W poniższym przykładzie pokazano, jak utworzyć standardową kontrolkę etykietki narzędzia dla całego obszaru klienta okna.

Poniższa ilustracja przedstawia etykietkę narzędzia wyświetlaną, gdy wskaźnik myszy znajduje się w oknie klienta okna dialogowego. Uchwyt okna dialogowego został przekazany do funkcji pokazanej w poprzednim przykładzie.

zrzut ekranu okna dialogowego; wskaźnik myszy znajduje się w oknie klienta, a etykietka narzędzia jest widoczna

Co musisz wiedzieć

Technologie

  • kontrolek systemu Windows

Warunki wstępne

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

Instrukcje

Utwórz podpowiedź dla prostokątnego obszaru

W poniższym przykładzie pokazano, jak utworzyć standardową kontrolkę podpowiedzi dla całego obszaru klienta okna.

void CreateToolTipForRect(HWND hwndParent)
{
    // Create a tooltip.
    HWND hwndTT = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL, 
                                 WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, 
                                 CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
                                 hwndParent, NULL, g_hInst,NULL);

    SetWindowPos(hwndTT, HWND_TOPMOST, 0, 0, 0, 0, 
                 SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);

    // Set up "tool" information. In this case, the "tool" is the entire parent window.
    
    TOOLINFO ti = { 0 };
    ti.cbSize   = sizeof(TOOLINFO);
    ti.uFlags   = TTF_SUBCLASS;
    ti.hwnd     = hwndParent;
    ti.hinst    = g_hInst;
    ti.lpszText = TEXT("This is your tooltip string.");
    
    GetClientRect (hwndParent, &ti.rect);

    // Associate the tooltip with the "tool" window.
    SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti); 
} 

Korzystanie z kontrolek etykiety narzędziowej