Come implementare descrizioni comando su più righe

Le descrizioni comando su più righe consentono di visualizzare il testo su più righe.

Sono supportate dalla versione 4.70 e successive dei controlli comuni. L'applicazione crea una descrizione comando su più righe inviando un messaggio TTM_edizione Standard TMAXTIPWIDTH, specificando 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 descrizione comando esegue automaticamente il wrapping delle righe oppure è possibile utilizzare una combinazione di ritorno a capo/avanzamento riga, \r\n, per forzare interruzioni di riga in determinate posizioni.

La visualizzazione risultante è illustrata nella figura seguente.

screen shot of a dialog box with a tooltip that contains text arranged like a multi-line paragraph

Nota

Il buffer di testo specificato dal membro szText della struttura NMTTDISPINFO può contenere solo 80 caratteri. Se è necessario usare una stringa più lunga, puntare il membro lpszText di NMTTDISPINFO a un buffer contenente il testo desiderato.

 

Informazioni importanti

Tecnologie

Prerequisiti

  • C/C++
  • Programmazione dell'interfaccia utente di Windows

Istruzioni

Implementare descrizioni comando su più righe

Il frammento di codice seguente è un esempio di un gestore di notifica TTN_GETDISPINFO semplice. Abilita una descrizione comando 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 difficili 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;
    }

Uso dei controlli descrizione comando