Udostępnij za pośrednictwem


Jak wyświetlać etykietki narzędzi dla przycisków

Po określeniu stylu TBSTYLE_TOOLTIPS pasek narzędzi tworzy kontrolkę etykietki narzędzi i zarządza nią. Kontrolka etykietki narzędzia jest ukryta i jest wyświetlana tylko wtedy, gdy użytkownicy przenoszą wskaźnik na przycisk paska narzędzi i pozostawiają go tam przez około jedną sekundę.

Aplikacja może podać tekst do kontrolki podpowiedzi w jeden z następujących sposobów:

  • Ustaw tekst podpowiedzi jako członka iString struktury TBBUTTON dla każdego przycisku. Należy również wysłać komunikat TB_SETMAXTEXTROWS i ustawić maksymalną liczbę wierszy tekstowych na 0, aby tekst nie był wyświetlany jako etykieta przycisku, a nie etykietka narzędzia.
  • Utwórz pasek narzędzi z stylem TBSTYLE_LIST, a następnie ustaw styl rozszerzony TBSTYLE_EX_MIXEDBUTTONS. Etykiety są wyświetlane tylko dla przycisków, które mają styl BTNS_SHOWTEXT. W przypadku przycisków, które nie mają tego stylu, zostanie wyświetlona etykietka narzędzia zawierająca tekst przycisku.
  • Odpowiedź na kod powiadomienia TTN_GETDISPINFO.
  • Odpowiedz na kod powiadomienia TBN_GETINFOTIP.

Aplikacja, która musi wysyłać komunikaty bezpośrednio do kontrolki typu tooltip, może uzyskać uchwyt kontrolki przy użyciu komunikatu TB_GETTOOLTIPS. Aplikacja może zastąpić kontrolkę podpowiedzi paska narzędzi inną kontrolką podpowiedzi przy użyciu komunikatu TB_SETTOOLTIPS.

Najbardziej elastycznym sposobem dostarczania tekstu podpowiedzi jest odpowiadanie na kod powiadomień TTN_GETDISPINFO lub TBN_GETINFOTIP, wysyłany przez kontrolkę paska narzędzi do jego elementu nadrzędnego jako komunikat WM_NOTIFY. W przypadku TTN_GETDISPINFOparametr lParam zawiera wskaźnik do strukturyNMTTDISPINFO (także zdefiniowanej jako LPTOOLTIPTEXT), który określa identyfikator polecenia przycisku, dla którego jest potrzebny tekst Pomocy. Ten identyfikator znajduje się w członku struktury NMTTDISPINFO.hdr.idFrom. Aplikacja może skopiować tekst Pomocy do struktury, określić adres ciągu z tekstem Pomocy lub podać uchwyt wystąpienia i identyfikator zasobu ciągu.

Co musisz wiedzieć

Technologie

  • kontrolek systemu Windows

Warunki wstępne

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

Instrukcje

Wyświetlanie podpowiedzi dla przycisku

Poniższy przykładowy kod obsługuje kod powiadomienia etykietki narzędzia TTN_GETDISPINFO przez podanie tekstu z identyfikatorów zasobów.

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;

przy użyciu kontrolek paska narzędzi

pokaz wspólnych kontrolek systemu Windows (CppWindowsCommonControls)