O statických ovládacích prvcích
Aplikace často používají statické ovládací prvky k označení jiných ovládacích prvků nebo k oddělení skupiny ovládacích prvků. I když statické ovládací prvky fungují jako podřízená okna, nelze je vybrat. Proto nemohou přijmout fokus klávesnice a nemohou mít rozhraní klávesnice. Statický ovládací prvek, který má styl SS_NOTIFY přijímá vstup myši, upozorní nadřazené okno, když uživatel klikne nebo dvakrát klikne na ovládací prvek. Statické ovládací prvky patří do třídy okna STATIC.
I když se statické ovládací prvky dají použít v překryvných, automaticky otevíraných a podřízených oknech, jsou navržené pro použití v dialogových oknech, kde systém standardizuje jejich chování. Použitím statických ovládacích prvků mimo dialogová okna vývojář zvyšuje riziko, že se aplikace může chovat nestandardním způsobem. Vývojář obvykle používá statické ovládací prvky v dialogových oknech nebo používá styl SS_OWNERDRAW k vytvoření přizpůsobených statických ovládacích prvků.
V této části jsou popsána následující témata.
-
typy statických ovládacích prvků
- jednoduché statické grafické ovládání
- statické ovládání textového prvku
- statické ovládání obrázku
- Owner-Drawn statická kontrola
- Statické ovládání výchozího zpracování zpráv
Typy statických ovládacích prvků
Existují čtyři typy statických ovládacích prvků. Každý typ má jeden nebo více statických ovládacích stylů.
- Jednoduché grafické statické ovládací prvky
- Statické ovládání textu
- obrázku statického ovládacího prvku
- Owner-Drawn Statická kontrola
Jednoduchý grafický statický ovládací prvek
Jednoduchý grafický statický ovládací prvek zobrazuje rámeček nebo vyplněný obdélník. Rámeček lze kreslit v řadě stylů, včetně černé, šedé nebo bílé. Kromě toho lze nakreslit rámeček s rytým stylem, aby získal trojrozměrný vzhled. Styly rámečků zahrnují SS_BLACKFRAME, SS_GRAYFRAME, SS_WHITEFRAME, SS_ETCHEDHORZ, SS_ETCHEDVERT a SS_ETCHEDFRAME.
Obdélník může být vyplněn barvou v jednom ze tří stylů: černá, šedá nebo bílá. Tyto styly jsou definovány konstantami SS_BLACKRECT, SS_GRAYRECT a SS_WHITERECT.
Styly grafiky nelze kombinovat.
Textový statický ovládací prvek
Textový statický ovládací prvek zobrazuje text v obdélníku v jednom z pěti stylů:
- Zarovnáno doleva bez zalamování textu
- Zarovnání doleva pomocí zalamování slov
- soustředěný
- zarovnané doprava
- jednoduchý
Tyto styly jsou definovány konstantami SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT a SS_SIMPLE. Systém přeuspořádá text v těchto ovládacích prvcích předdefinovanými způsoby, s výjimkou "jednoduchého" textu, který není přeuspořádaný.
Aplikace může kdykoli změnit text v textovém statickém ovládacím prvku pomocí funkce SetWindowText nebo zprávy WM_SETTEXT.
Systém ve statickém ovládacím prvku zobrazí tolik textu, kolik může, a ořízne to, co se nevejde. Pokud chcete vypočítat odpovídající velikost ovládacího prvku, načtěte metriky písma pro text. Další informace o písmech a metrikách písem najdete v tématu Písma a textové.
Ve výchozím nastavení může text okna statického ovládacího prvku, stejně jako u jiných ovládacích prvků, obsahovat ampersand, který definuje následující znak jako klávesovou zkratku pro ovládací prvek (nebo v případě většiny statických ovládacích prvků pro ovládací prvek, který označuje, což je další ovládací prvek v pořadí ovládacích prvků). Pokud chcete v textu zobrazovat ampersandy a nechcete je používat k definování klávesových zkratek, uveďte SS_NOPREFIX styl.
Ovládání statického obrazu
Statický ovládací prvek obrázku může zobrazovat rastry, ikony (včetně animovaných ikon) nebo rozšířené metasoubory. Typ grafického objektu, který zobrazuje určitý statický ovládací prvek, závisí na stylu ovládacího prvku: SS_BITMAP, SS_ICON nebo SS_ENHMETAFILE. Aplikace určuje styl při vytváření ovládacího prvku a také určuje popisovač rastrového obrázku, ikony nebo metasouboru pro zobrazení ovládacího prvku. Po vytvoření ovládacího prvku může aplikace přidružit k ovládacímu prvku jinou grafiku odesláním zprávy STM_SETIMAGE a určit popisovač nového grafického objektu. Aplikace může načíst popisovač grafického objektu, který je aktuálně přidružený ke statickému ovládacímu prvku, odesláním zprávy STM_GETIMAGE. Aplikace odesílá zprávy do statického ovládacího prvku pomocí funkce SendDlgItemMessage.
Owner-Drawn Statické Ovládání
Pomocí stylu SS_OWNERDRAW může aplikace převzít odpovědnost za malování statického ovládacího prvku. Nadřazené okno statického ovládacího prvku nakresleného vlastníkem (jeho vlastníka) obdrží zprávu WM_DRAWITEM pokaždé, když je potřeba nakreslit statický ovládací prvek. Zpráva obsahuje ukazatel na strukturu DRAWITEMSTRUCT, která obsahuje informace, které okno vlastníka používá při vykreslování ovládacího prvku.
Výchozí zpracování zpráv statického ovládacího prvku
Procedura okna pro předdefinovanou třídu okna statického ovládacího prvku provádí výchozí zpracování pro všechny zprávy, které procedura statického ovládacího prvku nezpracovává. Když statický ovládací prvek vrátí FALSE pro libovolnou zprávu, předdefinovaná procedura okna zkontroluje zprávy a provede výchozí akci popsanou v následující tabulce. V tabulce je textový statický ovládací prvek se stylem SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT nebo SS_SIMPLE.
Zpráva | Výchozí akce |
---|---|
WM_CREATE | Načte grafický objekt a přizpůsobí velikost okna velikosti objektu, což je určeno pro grafické statické ovládací prvky. Nepodniká žádnou akci pro jiné statické ovládací prvky. |
WM_DESTROY | Uvolní a zničí jakýkoli grafický objekt pro grafické statické ovládací prvky. Nepodniká žádnou akci pro žádné další statické ovládací prvky. |
WM_ENABLE | Překresluje viditelné statické ovládací prvky |
WM_ERASEBKGND | Vrátí TRUE, naznačující, že ovládací prvek vymaže pozadí. |
WM_GETDLGCODE | Vrátí DLGC_STATIC. |
WM_GETFONT | Vrací popisovač písma pro statické textové ovladače. |
WM_GETTEXT | Vrátí počet zkopírovaných znaků. |
WM_GETTEXTLENGTH | Vrátí délku, ve znacích, textu statického textového ovládacího prvku. |
WM_LBUTTONDBLCLK | Pokud je styl ovládacího prvku SS_NOTIFY, odešle nadřazenému oknu kód oznámení STN_DBLCLK. |
WM_LBUTTONDOWN | Pokud je styl ovládacího prvku SS_NOTIFY, odešle nadřazenému oknu kód oznámení STN_CLICKED. |
WM_NCLBUTTONDBLCLK | Odešle kód oznámení STN_DBLCLK nadřazenému oknu, pokud je styl ovládacího prvku SS_NOTIFY. |
WM_NCLBUTTONDOWN | Odešle nadřazenému oknu oznámení STN_CLICKED, pokud je styl ovládacího prvku SS_NOTIFY. |
WM_NCHITTEST | Vrátí HTCLIENT, pokud je styl ovládacího prvku SS_NOTIFY; v opačném případě vrátí hodnotu HTTRANSPARENT. |
WM_PAINT | Překreslí ovládací prvek. |
WM_SETFONT | Nastaví písmo a překreslí textové statické ovládací prvky. |
WM_SETTEXT | Nastaví text a aktualizuje textové statické ovládací prvky. |
Předdefinovaná procedura okna předá všechny ostatní zprávy DefWindowProc pro výchozí zpracování.