Hogyan valósítsunk meg többsoros súgókat
A többsoros elemleírások lehetővé teszik a szöveg több sorban való megjelenítését.
A közös vezérlők 4.70-es és újabb verziói támogatják őket. Az alkalmazás többsoros súgó buborékot hoz létre egy TTM_SETMAXTIPWIDTH üzenet küldésével, amely megadja a megjelenítési téglalap szélességét. Az ennél nagyobb szélességű szöveg a megjelenítési régió bővítése helyett a következő sorba tördel. A téglalap magassága szükség szerint megnő a további vonalak elhelyezéséhez. Az eszköztip vezérlő automatikusan körbefuttatja a sorokat, vagy használhat egy kocsivissza és sorbetöltés kombinációt (\r\n), hogy bizonyos helyeken kényszerítse a vonaltöréseket.
Az eredményként kapott megjelenítés az alábbi ábrán látható.
Jegyzet
Az szTextNMTDISPINFO struktúrájának tagja által megadott szövegpuffer csak 80 karaktert tartalmazhat. Ha hosszabb szöveget szeretne használni, irányítsa az lpszText tagot az NMTTDISPINFO struktúrájában arra a pufferre, amely a kívánt szöveget tartalmazza.
Amit tudnia kell
Technológiák
Előfeltételek
- C/C++
- Windows felhasználói felület programozása
Előírás
Többsoros elemleírások implementálása
Az alábbi kódrészlet egy egyszerű TTN_GETDISPINFO értesítéskezelő példája. Lehetővé teszi a többsoros elemleírást úgy, hogy a megjelenítési téglalapot 150 képpontra állítja. Az első szó után beszúr egy kézi sortörést, amely azt mutatja, hogy a sortörések kemények és puhaak is lehetnek.
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;
}
Kapcsolódó témakörök