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
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;
Tematy pokrewne