Hogyan kell a Balloon tooltip-eket implementálni
A ballon elemleírások hasonlóak a szokásos elemleírásokhoz, de egy rajzfilm stílusú "ballonban" jelennek meg, amelynek szára az eszközre mutat. A ballon elemleírások lehetnek egysorosak vagy többsorosak. Ezek létrehozása és kezelése ugyanúgy történik, mint a standard tooltipok.
A szár és a téglalap alapértelmezett pozíciója az alábbi ábrán látható. Ha az eszköz túl közel van a képernyő tetejéhez, a súgó buborék az eszköz téglalapjának jobb oldalán és alatt jelenik meg. Ha az eszköz túl közel van a képernyő jobb oldalához, hasonló alapelvek érvényesek, de az elemleírás az eszköz téglalapjának bal oldalán jelenik meg.
fölött és jobb oldalán megjelenik egy egysoros szöveget tartalmazó buborék súgó
Az alapértelmezett pozicionálás módosításához állítsa be a TTF_CENTERTIP jelölőt az uFlags mezőjében a TOOLINFO szerkezetben. Ebben az esetben a szár általában az eszköz téglalapjának alsó szélének közepére mutat, és a szöveg téglalapja közvetlenül az eszköz alatt jelenik meg. A szár a felső szél közepén lévő szöveg téglalaphoz csatlakozik. Ha az eszköz túl közel van a képernyő aljára, a szöveg téglalapja középre van helyezve az eszköz felett, és a szár az alsó szél közepéhez csatlakozik.
Az alábbi ábrán az eszközön középre helyezett eszköztipp látható.
alatt megjelenik egy sor szöveget tartalmazó buborék-tipp
Ha meg szeretné adni, hogy merre mutat a szár, állítsa be a TTF_TRACK jelölőt az uFlags tagban az eszköztipp TOOLINFO struktúrájában. A koordinátát ezután egy TTM_TRACKPOSITION üzenet küldésével adhatja meg, az x és az y koordinátákkal az lParam értékben. Ha TTF_CENTERTIP is be van állítva, a szár továbbra is a TTM_TRACKPOSITION üzenet által megadott pozícióra mutat.
Amit tudnia kell
Technológiák
Előfeltételek
- C/C++
- Windows felhasználói felület programozása
Előírás
Ballon elemleírások implementálása
Az alábbi példakód bemutatja, hogyan lehet középre igazított ballon súgót létrehozni a TTS_BALLOON súgó vezérlőstílusának használatával.
hwndToolTips = CreateWindow(TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_BALLOON,
0, 0, 0, 0, NULL, NULL, g_hinst, NULL);
if (hwndTooltip)
{
TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_CENTERTIP;
ti.hwnd = hwnd;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = LPSTR_TEXTCALLBACK;
GetClientRect(hwnd, &ti.rect);
SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );
}
Kapcsolódó témakörök