Freigeben über


Implementieren von mehrteiligen QuickInfos

Mehrzeilige QuickInfos ermöglichen die Anzeige von Text in mehr als einer Zeile.

Sie werden von Version 4.70 und höher der allgemeinen Steuerelemente unterstützt. Ihre Anwendung erstellt eine mehrteilige QuickInfo, indem sie eine TTM_SETMAXTIPWIDTH Nachricht sendet und die Breite des Anzeigerechtecks angibt. Text, der diese Breite überschreitet, wird in die nächste Zeile umgebrochen, anstatt den Anzeigebereich zu erweitern. Die Rechteckhöhe wird bei Bedarf erhöht, um die zusätzlichen Linien aufzunehmen. Das QuickInfo-Steuerelement umschließt die Linien automatisch, oder Sie können eine Kombination aus Wagenrücklauf/Zeilenvorschub verwenden, \r\n, um Zeilenumbrüche an bestimmten Stellen zu erzwingen.

Die resultierende Anzeige ist in der folgenden Abbildung dargestellt.

Screenshot eines Dialogfelds mit einer QuickInfo, die Text enthält, der wie ein mehrzeiliges Absatz angeordnet ist

Hinweis

Der vom szText-Member der NMTTDISPINFO-Struktur angegebene Textpuffer kann nur 80 Zeichen aufnehmen. Wenn Sie eine längere Zeichenfolge verwenden müssen, zeigen Sie das lpszText-Element von NMTTDISPINFO auf einen Puffer, der den gewünschten Text enthält.

 

Wichtige Informationen

Technologien

Voraussetzungen

  • C/C++
  • Programmierung der Windows-Benutzeroberfläche

Anweisungen

Implementieren von mehrteiligen QuickInfos

Das folgende Codefragment ist ein Beispiel für einen einfachen TTN_GETDISPINFO Benachrichtigungshandler. Es ermöglicht eine mehrlineare QuickInfo, indem das Anzeigerechteck auf 150 Pixel festgelegt wird. Nach dem ersten Wort wird ein manueller Zeilenumbruch eingefügt, um zu zeigen, dass Zeilenumbrüche sowohl hart als auch weich sein können.

    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;
    }

Verwenden von QuickInfo-Steuerelementen