Stavové pruhy (ovládací prvky Windows)
Stavový řádek je vodorovné okno v dolní části nadřazeného okna, ve kterém může aplikace zobrazit různé druhy informací o stavu. Stavový řádek lze rozdělit do částí, aby se zobrazilo více typů informací. Následující snímek obrazovky ukazuje stavový řádek v aplikaci Microsoft Windows Paint. V tomto případě obsahuje stavový řádek text "Pro nápovědu, klepněte na tlačítko Témata nápovědy v nabídce Nápověda". Stavový řádek je oblast v dolní části okna, která obsahuje text nápovědy a informace o souřadnicích.
Tato část obsahuje následující témata.
- typy a styly
- velikost a výška
- Multiple-Part stavových pruhů
- textové operace stavového řádku
- Owner-Drawn stavových pruhů
- stavových úsečky jednoduchého režimu
- zpracování výchozí zprávy na stavovém řádku
Typy a styly
Výchozí umístění stavového řádku je v dolní části nadřazeného okna, ale můžete určit styl CCS_TOP, aby se zobrazoval v horní části klientské oblasti nadřazeného okna.
Můžete určit styl SBARS_SIZEGRIP tak, aby na pravé straně stavového řádku obsahoval úchyt pro změnu velikosti.
Poznámka
Kombinace CCS_TOP a stylů SBARS_SIZEGRIP se nedoporučuje, protože výsledný úchyt pro změnu velikosti není funkční.
Velikost a výška
Procedura okna stavového řádku automaticky nastaví počáteční velikost a umístění okna a ignoruje hodnoty zadané v CreateWindowEx funkce. Šířka je stejná jako šířka klientské oblasti nadřazeného okna. Výška je založená na metrikách písma, které je aktuálně vybráno do kontextu zařízení stavového řádku a na šířce ohraničení okna.
Procedura okna automaticky upraví velikost stavového řádku pokaždé, když obdrží WM_SIZE zprávu. Když se velikost nadřazeného okna změní, nadřazený objekt obvykle odešle zprávu WM_SIZE na stavový řádek.
Aplikace může nastavit minimální výšku oblasti výkresu stavového řádku odesláním okna SB_SETMINHEIGHT zprávu s určením minimální výšky v pixelech. Oblast výkresu neobsahuje ohraničení okna. Minimální výška je užitečná pro kreslení na stavovém řádku vlastníka. Další informace najdete v tématu Owner-Drawn stavových pruhů dále v této kapitole.
Šířky ohraničení stavového řádku načtete odesláním okna SB_GETBORDERS zprávu. Zpráva obsahuje adresu pole se třemi prvky, které přijímá šířky.
stavové řádky Multiple-Part
Stavový řádek může mít mnoho různých částí, z nichž každý zobrazuje jiný řádek textu. Stavový řádek rozdělíte na části odesláním okna SB_SETPARTS zprávu a určíte počet částí, které se mají vytvořit, a adresu celočíselného pole. Pole obsahuje jeden prvek pro každou část a každý prvek určuje souřadnici klienta pravého okraje části.
Stavový řádek může mít maximálně 256 částí, i když aplikace obvykle používají mnohem méně než to. Počet částí na stavovém řádku a souřadnici pravého okraje každé části načtete odesláním okna SB_GETPARTS zprávu.
Textové operace stavového řádku
Text libovolné části stavového řádku nastavíte odesláním zprávy SB_SETTEXT, zadáním indexu na základě nuly části, adresy řetězce, která se má v části vykreslit, a technikou kreslení řetězce. Technika kreslení určuje, zda má text ohraničení a pokud ano, styl ohraničení. Určuje také, jestli je nadřazené okno zodpovědné za kreslení textu. Další informace najdete v části Owner-Drawn stavových úsecích níže.
Ve výchozím nastavení je text zarovnaný doleva v zadané části stavového řádku. Do textu můžete vložit znaky tabulátoru (\ t) tak, aby se zarovnaly na střed nebo doprava. Text napravo od jednoho znaku tabulátoru je zarovnaný na střed a text napravo od druhého znaku tabulátoru je zarovnaný doprava.
Pokud chcete načíst text ze stavového řádku, použijte SB_GETTEXTLENGTH a SB_GETTEXT zprávy.
Pokud vaše aplikace používá stavový řádek, který má jenom jednu část, můžete k provádění textových operací použít WM_SETTEXT, WM_GETTEXTa WM_GETTEXTLENGTH zprávy. Tyto zprávy se zabývají pouze částí, která má index nuly, což vám umožní zacházet se stavovým řádkem podobně jako se statickým textovým ovládacím prvku.
Pokud chcete zobrazit řádek stavu bez vytvoření stavového řádku, použijte funkci DrawStatusText. Funkce používá stejné techniky k vykreslení stavu jako postup okna stavového řádku, ale nenastavuje automaticky velikost a pozici informací o stavu. Při volání funkce je nutné zadat velikost a umístění informací o stavu a také kontext zařízení okna, ve kterém ho chcete nakreslit.
stavové řádky Owner-Drawn
Můžete definovat jednotlivé části stavového řádku, které mají být nakresleny vlastníkem. Pomocí této techniky získáte větší kontrolu nad vzhledem části okna, než byste jinak měli. Můžete například zobrazit rastrový obrázek místo textu nebo kreslit text pomocí jiného písma.
Chcete-li definovat část okna jako vykreslenou vlastníkem, odešlete SB_SETTEXT zprávu na stavový řádek, zadejte část a techniku kreslení SBT_OWNERDRAW. Při zadání SBT_OWNERDRAW je parametr lParam 32bitovou hodnotou definovanou aplikací, kterou může aplikace použít při kreslení části. Můžete například zadat popisovač písma, rastrový úchyt, adresu řetězce atd.
Když stavový řádek potřebuje nakreslit část nakreslenou vlastníkem, odešle WM_DRAWITEM zprávu do nadřazeného okna. Parametr wParam zprávy je identifikátor podřízeného okna stavového řádku a parametr lParam je adresa struktury DRAWITEM STRUCT. Nadřazené okno používá informace ve struktuře k vykreslení části. U části stavového řádku nakresleného vlastníkem DRAWITEMSTRUCT obsahuje následující informace.
Člen | Popis |
---|---|
CtlType | Nedefinovaný; nepoužívejte. |
CtlID | Identifikátor podřízeného okna stavového řádku |
id položky | Index založený na nule části, která se má nakreslit. |
itemAction | Nedefinovaný; nepoužívejte. |
itemState | Nedefinovaný; nepoužívejte. |
hwndItem | Popisovač na stavovém řádku |
hDC | Popisovač kontextu zařízení na stavovém řádku |
rcItem | Souřadnice části okna, která se má nakreslit. Souřadnice jsou relativní vzhledem k levému hornímu rohu stavového řádku. |
itemData | 32bitová hodnota definovaná aplikací zadaná v parametru lParam zprávy SB_SETTEXT. |
Stavové řádky v jednoduchém režimu
Stavový řádek vložíte do "jednoduchého režimu" odesláním zprávy SB_SIMPLE. Stavový řádek jednoduchého režimu zobrazuje jenom jednu část. Při nastavení textu okna je okno neplatné, ale není překresleno, dokud další WM_PAINT. Čekání na zprávu snižuje blikání obrazovky minimalizací počtu překreslení okna. Jednoduchý stavový řádek režimu je užitečný pro zobrazení textu nápovědy pro položky nabídky, zatímco uživatel prochází nabídkou.
Řetězec, který se zobrazuje na stavovém řádku v jednoduchém režimu, se udržuje odděleně od řetězců, které se zobrazují v režimu bezsimple. To znamená, že můžete okno umístit do jednoduchého režimu, nastavit jeho text a přepnout zpět do režimu nesimple bez změny textu v režimu nesimple.
Při nastavování textu jednoduchého stavového řádku režimu můžete zadat jakoukoli techniku kreslení s výjimkou SBT_OWNERDRAW. Stavový řádek jednoduchého režimu nepodporuje výkres vlastníka.
Výchozí zpracování zpráv na stavovém řádku
Tato část popisuje zprávy zpracovávané procedurou okna pro předdefinované STATUSCLASSNAME třídy.