Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A helyben megjelenő leírások a kivágott objektumok szövegének megjelenítésére szolgálnak. Illusztráció: Tudnivalók az elemleírás-vezérlőkről.
A szokásos és a helyben lévő elemleírások közötti különbség a pozicionálás. Alapértelmezés szerint, ha az egérmutató egy olyan régióra mutat, amelyhez elemleírás van társítva, az elemleírás a régió mellett jelenik meg. Az elemleírások azonban ablakok, és bárhol elhelyezhetők, ha meghívja SetWindowPos. Helyben megjelenő eszköztipp létrehozása azt jelenti, hogy az eszköztipp ablakát úgy helyezzük el, hogy az átfedje a szöveget.
Amit tudnia kell
Technológiák
Előfeltételek
- C/C++
- Windows felhasználói felület programozása
Előírás
In-Place elemleírás elhelyezése
A helyhez tartozó elemleírások elhelyezésekor három téglalapot kell nyomon követnie:
- A teljes címkeszöveget körülvevő téglalap.
- Az elemleírás szövegét körülvevő téglalap. Az elemleírás szövege megegyezik a teljes felirat szövegével, és általában azonos méretű és betűtípusú. A két szöveges téglalap így általában azonos méretű lesz.
- Az eszköztipp ablak téglalapja. Ez a téglalap valamivel nagyobb, mint a hozzá tartozó elemleírás-szöveg téglalap.
A három téglalap séma szerint jelenik meg az alábbi ábrán. A címkeszöveg rejtett részét szürke háttér jelzi.
Ha helyben szeretne tooltipet létrehozni, úgy kell elhelyeznie az elemleírás szöveg téglalapját, hogy az átfedje a címkeszöveg téglalapját. A két téglalap igazításának eljárása viszonylag egyszerű:
- Határozza meg a felirat szövegének téglalapját.
- Helyezze az elemleírás ablakát úgy, hogy az elemleírás szöveg téglalapja átfedje a címkeszöveg téglalapját.
A gyakorlatban általában elegendő a két szöveges téglalap bal felső sarkának igazítása. Ha megpróbálja az elemleírás szövegének téglalapját pontosan a felirat szövegének téglalapjához méretezni, az problémákat okozhat az elemleírások megjelenítésekor.
Ezzel az egyszerű sémával az a probléma, hogy az elemleírás szövegének téglalapja nem helyezhető el közvetlenül. Ehelyett az elemleírás ablak téglalapját éppen annyira fölé és balra kell elhelyeznie a felirat szöveg téglalapjától, hogy a két szöveges téglalap sarkai egybeessenek. Más szóval, ismernie kell az "eszköztipp" ablak téglalapja és a benne lévő szöveg téglalapja közötti eltolást. Általánosságban elmondható, hogy ennek az eltolásnak nincs egyszerű meghatározási módja.
In-Place elemleírások implementálása
Az alábbi kódrészlet bemutatja, hogyan használható a TTM_ADJUSTRECT üzenet egy TTN_SHOW kezelőben az eszköztipp helyszíni megjelenítéséhez. Az alkalmazás azt jelzi, hogy a címkeszöveg csonkolva van azzal, hogy a privát fMyStringIsTruncated változót TRUEértékre állítja. A kezelő meghív egy alkalmazás által definiált függvényt, GetMyItemRect, hogy lekérje a címke szövegmezőjét. Ezt a téglalapot a TTM_ADJUSTRECTmetódussal továbbítják a tooltip vezérlőhöz, amely a megfelelő ablak téglalapot adja vissza. SetWindowPos meghívásával az elemleírást a címke fölé helyezheti.
case TTN_SHOW:
if (fMyStringIsTruncated)
{
RECT rc;
GetMyItemRect(&rc);
SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
SetWindowPos(hwndToolTip, NULL, rc.left, rc.top, 0, 0,
SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}
Ez a példa nem módosítja az elemleírás méretét, csak a pozícióját. A két szöveges téglalap a bal felső sarokban van igazítva, de nem feltétlenül ugyanazokkal a dimenziókkal. A gyakorlatban a különbség általában kicsi, és ez a megközelítés a legtöbb célra ajánlott. Bár elvileg a SetWindowPos használatával átméretezheti és áthelyezheti az eszköztippet, ennek kiszámíthatatlan következményei lehetnek.
Megjegyzések
A gyakori vezérlők 5.80- leegyszerűsíti a beépített eszköztippek használatát egy új üzenet, TTM_ADJUSTRECThozzáadásával. Küldje el ezt az üzenetet annak a címkeszöveg-téglalapnak a koordinátáival, amelyet át szeretne fedni az elemleírással, és visszaadja a megfelelő helyen lévő elemleírás-ablak téglalapjának koordinátáit.
Kapcsolódó témakörök