Implementieren von mehrstufigen QuickInfos
Mehrzeilen-QuickInfos ermöglichen das Anzeigen 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 mehrzweckige QuickInfo, indem sie eine TTM _ SETMAXTIPWIDTH-Nachricht sendet und dabei die Breite des Anzeigerechtecks angibt. Text, der diese Breite überschreitet, wird mit der nächsten Zeile umschließen, anstatt den Anzeigebereich zu verbreitern. Die Rechteckhöhe wird nach Bedarf erhöht, um die zusätzlichen Linien aufzunehmen. Das QuickInfo-Steuerelement umbricht die Zeilen automatisch, oder Sie können eine Wagenrücklauf-/Zeilenfeedkombination (r n) verwenden, um Zeilenumbrüche an \ \ bestimmten Stellen zu erzwingen.
Die resultierende Anzeige wird in der folgenden Abbildung dargestellt.

Hinweis
Der vom szText-Member der NMTTDISPINFO-Struktur angegebene Textpuffer kann nur 80 Zeichen aufnehmen. Wenn Sie eine längere Zeichenfolge verwenden müssen, verweisen Sie den lpszText-Member von NMTTDISPINFO auf einen Puffer, der den gewünschten Text enthält.
Wichtige Informationen
Technologien
Voraussetzungen
- C/C++
- Windows Benutzeroberfläche Programmierung
Instructions
Implementieren von mehrstufigen QuickInfos
Das folgende Codefragment ist ein Beispiel für einen einfachen TTN _ GETDISPINFO-Benachrichtigungshandler. Sie ermöglicht eine mehrstufige 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 schwierig und 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;
}