Come implementare strumenti di suggerimento su più righe
Le descrizioni comando multilinea consentono di visualizzare il testo su più righe.
Sono supportati da versione 4.70 e successive dei controlli comuni. L'applicazione crea un tooltip su più righe inviando un messaggio TTM_SETMAXTIPWIDTH, che specifica la larghezza del rettangolo di visualizzazione. Il testo che supera questa larghezza viene disposto alla riga successiva anziché ampliare l'area di visualizzazione. L'altezza del rettangolo viene aumentata in base alle esigenze per contenere le linee aggiuntive. Il controllo tooltip avvolge automaticamente le righe, oppure è possibile utilizzare una combinazione di ritorno a capo, \r\n, per spezzare le righe in determinate posizioni.
La visualizzazione risultante è illustrata nella figura seguente.
Nota
Il buffer di testo specificato dal membro szText della strutturaNMTTDISPINFOpuò contenere solo 80 caratteri. Se è necessario usare una stringa più lunga, puntare il membro lpszText di NMTTDISPINFO a un buffer contenente il testo desiderato.
Cosa è necessario sapere
Tecnologie
Prerequisiti
- C/C++
- Programmazione dell'interfaccia utente di Windows
Disposizioni
Implementare suggerimenti su più righe
Il frammento di codice seguente è un esempio di un gestore di notifica TTN_GETDISPINFO semplice. Abilita un tooltip su più righe impostando il rettangolo di visualizzazione su 150 pixel. Un'interruzione di riga manuale viene inserita dopo la prima parola per mostrare che le interruzioni di riga possono essere rigide e morbide.
case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case TTN_GETDISPINFO:
LPNMTTDISPINFO pInfo = (LPNMTTDISPINFO)lParam;
SendMessage(pInfo->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 150);
wcscpy_s(pInfo->szText, ARRAYSIZE(pInfo->szText),
L"This\nis a very long text string " \
L"that must be broken into several lines.");
break;
}
break;
}
Argomenti correlati