Sdílet prostřednictvím


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ů

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í 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í.