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.
Az alkalmazások gyakran statikus vezérlőket használnak más vezérlők címkézéséhez vagy vezérlőcsoportok elválasztásához. Bár a statikus vezérlők gyermekablakok, nem jelölhetők ki. Ezért nem kapják meg a billentyűzetfókuszt, és nem rendelkeznek billentyűzet-kezelőfelülettel. A SS_NOTIFY stílussal rendelkező statikus vezérlők egérbemenetet kapnak, amely értesíti a szülőablakot, amikor a felhasználó rákattint vagy duplán kattint a vezérlőre. A statikus vezérlők a STATIC ablakosztályhoz tartoznak.
Bár a statikus vezérlők egymást átfedő, előugró és gyermekablakokban is használhatók, párbeszédpaneleken való használatra lettek kialakítva, ahol a rendszer szabványosítja a viselkedésüket. Ha a párbeszédpaneleken kívül statikus vezérlőket használ, a fejlesztők növelik annak kockázatát, hogy az alkalmazás nem megfelelő módon viselkedjen. A fejlesztők általában statikus vezérlőket használnak a párbeszédpaneleken, vagy a SS_OWNERDRAW stílust használják testre szabott statikus vezérlők létrehozásához.
Ebben a szakaszban az alábbi témaköröket tárgyaljuk.
Statikus vezérlőtípusok
A statikus vezérlőknek négy típusa van. Mindegyik típus rendelkezik egy vagy több Statikus Vezérlőstílussal.
- Egyszerű grafikus statikus vezérlő
- Statikus szövegvezérlés
- Kép statikus vezérlése
- Owner-Drawn statikus vezérlő
Egyszerű grafikus statikus vezérlő
Egy egyszerű grafikus statikus vezérlő egy keretet vagy egy kitöltött téglalapot jelenít meg. A keret számos stílusban rajzolható, beleértve a fekete, a szürke vagy a fehér stílust is. Emellett egy keret gravírozott stílussal is rajzolható, hogy háromdimenziós megjelenést kölcsönözzon neki. A keretstílusok a következők: SS_BLACKFRAME, SS_GRAYFRAME, SS_WHITEFRAME, SS_ETCHEDHORZ, SS_ETCHEDVERT és SS_ETCHEDFRAME.
A téglalapokat háromféle színnel lehet kitölteni: fekete, szürke vagy fehér. Ezeket a stílusokat a SS_BLACKRECT, SS_GRAYRECT és SS_WHITERECT állandók határozzák meg.
A grafikus stílusok nem kombinálhatók.
Szöveg statikus vezérlője
A szöveges statikus vezérlők öt stílus egyikében jelenítik meg a szöveget egy téglalapban:
- balra igazított sortörés nélkül
- balra igazítva a szavak tördelésével
- központú
- jobbra igazított
- egyszerű
Ezeket a stílusokat a SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT és SS_SIMPLE állandók határozzák meg. A rendszer előre definiált módon rendezi át a vezérlők szövegét, kivéve az "egyszerű" szöveget, amely nincs átrendezve.
Az alkalmazások bármikor módosíthatják a szöveg statikus vezérlőinek szövegét a SetWindowText függvénnyel vagy a WM_SETTEXT üzenettel.
A rendszer annyi szöveget jelenít meg, amennyit csak tud a statikus vezérlőben, és bármit rögzít, ami nem fér el. A vezérlőelem megfelelő méretének kiszámításához kérje le a szöveg betűmetrikáit. További információ a betűtípusokról és a betűmetrikákról: Betűtípusok és Szöveg.
A statikus vezérlők ablakszövege alapértelmezés szerint tartalmazhat egy és-jelet, amely a következő karaktert határozza meg gyorsbillentyűként a vezérlő számára (vagy a legtöbb statikus vezérlő esetében az a vezérlőelem számára, amelyet címkéznek, és amely a tabulátor sorrendben a következő vezérlőelem). Ha a szövegben szeretné megjeleníteni az és jeleket ahelyett, hogy billentyűparancsok definiálására használná őket, adja meg a SS_NOPREFIX stílust.
Kép statikus vezérlője
A kép statikus vezérlői bitképeket, ikonokat (beleértve az animált ikonokat) vagy továbbfejlesztett metafájlokat is megjeleníthetnek. Az adott statikus vezérlő által megjelenített ábra típusa a vezérlő stílusától függ: SS_BITMAP, SS_ICON vagy SS_ENHMETAFILE. Az alkalmazások a vezérlő létrehozásakor határozzák meg a stílust, valamint a vezérlőelem megjelenítendő bitképének, ikonjának vagy metafájljának fogópontját is. A vezérlő létrehozása után egy alkalmazás egy másik ábrát társíthat a vezérlőhöz egy STM_SETIMAGE üzenet elküldésével, amely egy leírót ad meg az új grafikus objektumnak. Az alkalmazások egy STM_GETIMAGE üzenet küldésével lekérhetnek egy leírót a statikus vezérlőhöz jelenleg társított grafikus objektumhoz. Az alkalmazás üzeneteket küld egy statikus vezérlőnek a SendDlgItemMessage függvénnyel.
Owner-Drawn statikus vezérlő
A SS_OWNERDRAW stílus használatával az alkalmazások felelősséget vállalhatnak a statikus vezérlők festéséért. A tulajdonos által rajzolt statikus vezérlő (tulajdonosa) szülőablaka WM_DRAWITEM üzenetet kap, amikor a statikus vezérlőt meg kell festeni. Az üzenet egy DRAWITEMSTRUCT szerkezetre mutató mutatót tartalmaz, amely a tulajdonosablak által a vezérlőelem rajzolásakor használt információkat tartalmazza.
Statikus vezérlő alapértelmezett üzenetfeldolgozása
Az előre definiált statikus vezérlőablak-osztály ablakműmenete az összes olyan üzenet alapértelmezett feldolgozását végzi el, amelyet a statikus vezérlő eljárás nem dolgoz fel. Amikor a statikus vezérlő HAMIS ad vissza minden üzenethez, az előre definiált ablakművelet ellenőrzi az üzeneteket, és végrehajtja az alábbi táblázatban leírt alapértelmezett műveletet. A táblázatban a szöveg statikus vezérlője egy statikus vezérlő, amelynek stílusa SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT vagy SS_SIMPLE.
| Üzenet | Alapértelmezett művelet |
|---|---|
| WM_CREATE | Betölti a grafikus objektumot, és méretezi az ablakot az objektum méretére a grafikus statikus vezérlőkhöz. Más statikus vezérlők esetében nem hajt végre műveletet. |
| WM_DESTROY | A grafikus statikus vezérlők számára felszabadítja és megsemmisíti a grafikus objektumokat. Más statikus vezérlők esetében nem hajt végre műveletet. |
| WM_ENABLE | Újrafesti a látható statikus vezérlőket. |
| WM_ERASEBKGND | Visszaadja IGAZ, amely azt jelzi, hogy a vezérlő törli a hátteret. |
| WM_GETDLGCODE | DLGC_STATIC ad vissza. |
| WM_GETFONT | Egy fogópontot ad vissza a szöveg statikus vezérlőinek betűtípusához. |
| WM_GETTEXT | A másolt karakterek számát adja vissza. |
| WM_GETTEXTLENGTH | Egy statikus vezérlőelem szövegének hosszát adja vissza karakterekben. |
| WM_LBUTTONDBLCLK | Ha a vezérlőstílus SS_NOTIFY, STN_DBLCLK értesítési kódot küld a szülőablaknak. |
| WM_LBUTTONDOWN | Ha a vezérlőstílus SS_NOTIFY, akkor STN_CLICKED értesítési kódot küld a szülőablaknak. |
| WM_NCLBUTTONDBLCLK | Ha a vezérlőstílus SS_NOTIFY, STN_DBLCLK értesítési kódot küld a szülőablaknak. |
| WM_NCLBUTTONDOWN | STN_CLICKED értesítési kódot küld a szülőablaknak, ha a vezérlőstílus SS_NOTIFY be van állítva. |
| WM_NCHITTEST | A HTCLIENT értéket adja vissza, ha a vezérlőstílus SS_NOTIFY; ellenkező esetben a HTTRANSPARENT értéket adja vissza. |
| WM_PAINT | A vezérlőt újrafesti. |
| WM_SETFONT | Beállítja a szöveg statikus vezérlőinek betűtípusát és újrafestéseit. |
| WM_SETTEXT | Beállítja a szöveget, és újrafesti a statikus szövegvezérlőket. |
Az előre definiált ablak eljárás minden más üzenetet továbbít DefWindowProc alapértelmezett feldolgozáshoz.