Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Panel nástrojů je ovládací prvek, který obsahuje jedno nebo více tlačítek. Každé tlačítko po kliknutí uživatelem odešle zprávu příkazu do nadřazeného okna. Tlačítka na panelu nástrojů obvykle odpovídají položkám v nabídce aplikace a poskytují uživateli další a přímější způsob přístupu k příkazům aplikace.
Následující snímek obrazovky ukazuje okno, které obsahuje jednoduchý panel nástrojů pro operace se soubory. Aplikace povolila vizuální styly. Tlačítko Uložit je "horké", protože na něm byl kurzor myši, když byl pořízen snímek obrazovky. Skutečný vzhled ovládacího prvku se liší v závislosti na operačním systému a motivu vybraném uživatelem.
Následující snímek obrazovky ukazuje stejný ovládací prvek v aplikaci, která byla zkompilována bez povolených vizuálních stylů.
Následující témata popisují funkce, které je potřeba zvážit při plánování panelu nástrojů. Konkrétní informace o implementaci a ukázkový kód naleznete v tématu Použití ovládacích prvků panelu nástrojů.
- určení velikosti a umístění panelu nástrojů
- Průhledné Panely Nástrojů
- panely nástrojů ve stylu seznamu
- Definice obrázků tlačítek
- Definování textu pro tlačítka
-
přidání tlačítek panelu nástrojů
- styly tlačítek panelu nástrojů
- Stavy tlačítek panelu nástrojů
- identifikátor příkazu
- velikost a umístění tlačítka
- Umožnění vlastního nastavení
- Povolení hot-trackingu
Určení velikosti a umístění panelu nástrojů
Pokud vytváříte panel nástrojů pomocí CreateToolbarEx, funkce umožňuje zadat v pixelech výšku a šířku panelu nástrojů.
Poznámka
Použití CreateToolbarEx se nedoporučuje, protože nepodporuje nové funkce panelů nástrojů, včetně seznamů obrázků. Další informace o vytváření panelů nástrojů naleznete v tématu Použití ovládacích prvků panelu nástrojů.
Funkce CreateWindowEx nemá parametry pro určení velikosti panelu nástrojů. Procedura okna panelu nástrojů automaticky nastaví velikost a umístění okna panelu nástrojů. Výška je založená na výšce tlačítek na panelu nástrojů. Šířka je stejná jako šířka klientské oblasti nadřazeného okna. Pokud chcete změnit nastavení automatické velikosti, odešlete TB_SETBUTTONSIZE zprávu. CCS_TOP a CCS_BOTTOM běžné styly ovládacích prvků určují, zda je panel nástrojů umístěn podél horní nebo dolní části klientské oblasti. Ve výchozím nastavení má panel nástrojů styl CCS_TOP.
Také procedura okna panelu nástrojů automaticky upraví velikost panelu nástrojů pokaždé, když obdrží WM_SIZE nebo TB_AUTOSIZE zprávu. Aplikace by měla posílat jednu z těchto zpráv vždy, když se změní velikost nadřazeného okna nebo po odeslání zprávy, která vyžaduje úpravu velikosti panelu nástrojů – například TB_SETBUTTONSIZE zprávy.
Výchozí nastavení velikosti a umístění panelu nástrojů je možné vypnout nastavením CCS_NORESIZE a CCS_NOPARENTALIGN běžných stylů ovládacích prvků. Ovládací prvky panelu nástrojů, které jsou hostovány ovládacími prvky rebaru, musí tyto styly nastavit, protože ovládací prvky rebaru určují velikost a umístění panelu nástrojů.
Průhledné panely nástrojů
Ovládací prvky panelu nástrojů podporují průhledný vzhled, který umožňuje zobrazení klientské oblasti pod panelem nástrojů. Existují dva druhy průhledných panelů nástrojů, ty s plochými tlačítky a ty s trojrozměrnými tlačítky. Pokud chcete, aby vaše aplikace odpovídala rozhraní systému Windows, použijte panel nástrojů s plochým průhledným stylem.
Následující snímek obrazovky ukazuje dva typy průhledných panelů nástrojů, které nepoužívají vizuální styly.
Následující snímek obrazovky ukazuje průhledný panel nástrojů, který se může objevit v systému Windows Vista s povolenými vizuálními styly. Barva pozadí dialogového okna byla změněna, aby byla průhlednost jasnější.
Pokud chcete vytvořit průhledný panel nástrojů, stačí přidat TBSTYLE_FLAT nebo TBSTYLE_TRANSPARENT do parametru stylu okna CreateWindowEx. Pokud nechcete, aby se čára zobrazovala jako dolní část panelu nástrojů, nepoužívejte styl okna WS_BORDER.
Poznámka
Při použití vizuálních stylů můžou být panely nástrojů ve výchozím nastavení ploché.
Panely nástrojů ve stylu seznamu
Tlačítka panelu nástrojů umožňují zobrazit text i rastrové obrázky. Tlačítka na panelu nástrojů vytvořená pomocí stylu TBSTYLE_LIST umístí text napravo od rastrového obrázku místo pod něj.
Následující snímek obrazovky ukazuje panel nástrojů se stylem seznamu.
Pomocí stylu TBSTYLE_LIST panelu nástrojů v kombinaci se stylem TBSTYLE_FLAT můžete vytvořit panel nástrojů s plochými tlačítky.
Definování obrázků tlačítek
Existují dva způsoby, jak určit obrázky tlačítek – rastrovými obrázky nebo seznamy obrázků. Aplikace musí zvolit, kterou metodu použít. Nemůže použít obě metody se stejným ovládacím prvkem panelu nástrojů. Všimněte si, že funkce CreateToolbarEx používá bitmapovou metodu. Aplikace, které chtějí použít metodu seznamu obrázků, musí k vytvoření ovládacího prvku panelu nástrojů použít funkci CreateWindowEx.
Definování obrázků tlačítek pomocí rastrových obrázků
Každé tlačítko na panelu nástrojů může obsahovat rastrový obrázek. Panel nástrojů používá interní seznam k uložení informací, které potřebuje k vykreslení obrázků. Když zavoláte funkci CreateToolbarEx, zadáte monochromatický nebo barevný rastrový obrázek, který obsahuje počáteční obrázky, a panel nástrojů přidá informace do interního seznamu obrázků. Další obrázky můžete přidat později pomocí zprávy TB_ADDBITMAP.
Každá image má index založený na nule. První obrázek přidaný do interního seznamu má index 0, druhý obrázek má index 1 atd. TB_ADDBITMAP přidá obrázky na konec seznamu a vrátí index prvního nového obrázku, který přidal. Pokud chcete obrázek přidružit k tlačítku, musíte odeslat TB_ADDBUTTONS zprávu a po přidání rastrových obrázků do interního seznamu obrázků zadat index obrázku.
Systém Windows předpokládá, že všechny rastrové obrázky panelu nástrojů mají stejnou velikost. Velikost zadáte při vytváření panelu nástrojů pomocí CreateToolbarEx. Pokud k vytvoření panelu nástrojů použijete funkci CreateWindowEx, nastaví se velikost obrázků na výchozí rozměry 16 až 15 pixelů. Pomocí TB_SETBITMAPSIZE zprávy můžete změnit rozměry rastrových obrázků, ale musíte to udělat před přidáním obrázků do interního seznamu.
Definování obrázků tlačítek pomocí seznamů obrázků
Obrázky tlačítek můžete také uložit do sady seznamu obrázků. Seznam obrázků je kolekce obrázků se stejnou velikostí, z nichž každý může být označován indexem. Seznamy obrázků slouží ke správě velkých sad ikon nebo rastrových obrázků. K zobrazení tlačítek v různých stavech můžete použít až tři různé seznamy obrázků, jak je znázorněno v následující tabulce.
| Stát | Popis |
|---|---|
| Normální | Tlačítka ve výchozím stavu |
| Horký | Tlačítka, která jsou pod kurzorem nebo stisknutá. Horké položky jsou podporovány pouze v ovládacích prvcích panelu nástrojů, které mají styl TBSTYLE_FLAT. |
| Invalidní | Tlačítka, která jsou zakázaná. |
Po zničení panelu nástrojů musí aplikace uvolnit všechny seznamy obrázků, které vytvořily.
Definování textu pro tlačítka
Každé tlačítko může vedle obrázku nebo místo něj zobrazit řetězec. Panel nástrojů udržuje interní seznam, který obsahuje všechny textové řetězce dostupné pro tlačítka na panelu nástrojů. Do interního seznamu přidáte řetězce pomocí zprávy TB_ADDSTRING a zadáte adresu vyrovnávací paměti obsahující řetězce, které chcete přidat. Každý řetězec musí být ukončen s hodnotou null a poslední řetězec musí být ukončen dvěma znaky null.
Každý řetězec má index založený na nule. První řetězec přidaný do interního seznamu řetězců má index 0, druhý řetězec má index 1 atd. TB_ADDSTRING přidá řetězce na konec seznamu a vrátí index prvního nového řetězce. Index řetězce použijete k tomu, abyste přidružili řetězec k tlačítku.
Použití TB_ADDSTRING není jediným způsobem, jak přidat řetězce na panel nástrojů. Řetězec můžete zobrazit v tlačítku tak, že předáte ukazatel na řetězec do členu iString ve struktuře TBBUTTON, která je předána funkci TB_ADDBUTTONS. Kromě toho můžete pomocí TB_SETBUTTONINFO přiřadit text k tlačítku panelu nástrojů.
Přidání tlačítek panelu nástrojů
Pokud k vytvoření panelu nástrojů použijete funkci CreateToolbarEx, můžete na panel nástrojů přidat tlačítka vyplněním pole TBBUTTON struktur a zadáním adresy pole ve volání funkce. Funkce CreateWindowEx však nemá parametr pro předávání struktury TBBUTTON. CreateWindowEx vytvoří prázdný panel nástrojů, který vyplníte odesláním zprávy TB_ADDBUTTONS, přičemž zadáte adresu struktury TBBUTTON.
Po vytvoření panelu nástrojů můžete tlačítka přidat odesláním TB_INSERTBUTTON nebo TB_ADDBUTTONS zprávy. Každé tlačítko je popsáno TBBUTTON struktury, která definuje atributy tlačítka, včetně indexů jeho řetězce a bitmapy a také jeho stylu, stavu, identifikátoru příkazu a 32bitové hodnoty definované aplikací.
Poznámka
Pokud k vytvoření panelu nástrojů použijete funkci CreateWindowEx, musíte před přidáním tlačítek odeslat TB_BUTTONSTRUCTSIZE zprávu. Zpráva předá velikost struktury TBBUTTON panelu nástrojů.
Styly tlačítek panelu nástrojů
Styl tlačítka určuje, jak se tlačítko zobrazí a jak reaguje na uživatelský vstup. Například styl BTNS_BUTTON vytvoří tlačítko panelu nástrojů, které se chová jako standardní tlačítko. Tlačítko se stylem BTNS_CHECK se podobá standardnímu tlačítku, s výjimkou toho, že přepíná mezi stisknutými a nepressovanými stavy pokaždé, když na něj uživatel klikne.
Skupiny tlačítek panelu nástrojů, které fungují jako přepínače, můžete vytvořit pomocí BTNS_GROUP nebo BTNS_CHECKGROUP stylu. To způsobí, že tlačítko zůstane stisknuté, dokud uživatel nezvolí jiné tlačítko ve skupině. Skupina je definována jako souvislá kolekce tlačítek, které mají styl BTNS_GROUP nebo BTNS_CHECKGROUP.
Styl BTNS_SEP vytvoří malou mezeru mezi tlačítky nebo nakreslí etch mezi tlačítky na plochých panelech nástrojů. Tlačítko se stylem BTNS_SEP nepřijímá uživatelský vstup.
Verze 5.80 běžných ovládacích prvků zavedla některé nové styly tlačítek panelu nástrojů a přejmenovaly některé starší styly. Všechny příznaky stylu tlačítek teď začínají BTNS_XXX namísto TBSTYLE_XXX. Seznam a diskuzi o stylech tlačítek naleznete v tématu Panel nástrojů ovládací prvek a styly tlačítek.
Stavy tlačítek panelu nástrojů
Každé tlačítko na panelu nástrojů má stav. Panel nástrojů aktualizuje stav tlačítka tak, aby odrážel akce uživatele, například kliknutí na tlačítko. Stav označuje, zda je tlačítko aktuálně stisknuto, povoleno nebo zakázáno, skryté nebo viditelné. I když aplikace nastaví počáteční stav tlačítka při přidávání tlačítka na panel nástrojů, může změnit a načíst stav odesláním TB_GETSTATE a TB_SETSTATE zpráv na panel nástrojů. Seznam stavů tlačítek panelu nástrojů naleznete v tématu Stav panelu nástrojů.
Identifikátor příkazu
Každé tlačítko má přidružený identifikátor příkazu definovaný aplikací. Identifikátory tlačítek jsou obvykle definovány v souboru hlavičky aplikace. Například tlačítko Vložit lze definovat takto:
#define ID_PASTE 100
Když uživatel vybere tlačítko, panel nástrojů odešle nadřazené okno WM_COMMAND nebo WM_NOTIFY zprávu, která obsahuje identifikátor příkazu tlačítka. Nadřazené okno zkontroluje identifikátor příkazu a provede příkaz přidružený k tlačítku. Informace o tom, kdy ovládací prvky odesílají WM_COMMAND zprávy a kdy odesílají WM_NOTIFY, najdete v části Poznámky v dokumentaci k WM_NOTIFY.
Velikost a umístění tlačítka
Panel nástrojů sleduje jeho tlačítka tím, že každému tlačítku přiřadí index pozice. Index je založený na nule; to znamená, že tlačítko úplně vlevo má index 0, další tlačítko vpravo má index 1 atd. Aplikace musí při odesílání zpráv zadat index tlačítka, aby načetla informace o tlačítku nebo aby nastavil atributy tlačítka.
Panel nástrojů aktualizuje indexy pozice při vkládání a odebírání tlačítek. Aplikace může načíst aktuální index pozice tlačítka pomocí TB_COMMANDTOINDEX zprávy. Zpráva určuje identifikátor příkazu tlačítka a okno panelu nástrojů používá identifikátor k vyhledání tlačítka a vrácení indexu pozice.
Všechna tlačítka na panelu nástrojů mají stejnou velikost. Funkce CreateToolbarEx vyžaduje, abyste při vytváření panelu nástrojů nastavili počáteční velikost tlačítek. Pokud použijete funkci CreateWindowEx, počáteční velikost se nastaví na výchozí rozměry 24 až 22 pixelů. Pomocí zprávy TB_SETBUTTONSIZE můžete změnit velikost tlačítka, ale musíte to udělat před přidáním libovolných tlačítek na panel nástrojů. Zpráva TB_GETITEMRECT načte aktuální rozměry tlačítek.
Když přidáte řetězec, který je delší než jakýkoli řetězec aktuálně na panelu nástrojů, panel nástrojů automaticky obnoví šířku jeho tlačítek. Šířka je nastavená tak, aby vyhovovala nejdelšímu řetězci na panelu nástrojů.
Povolení vlastního nastavení
Panel nástrojů má vestavěné funkce přizpůsobení, které můžete zpřístupnit uživateli tím, že mu přiřadíte běžný ovládací styl CCS_ADJUSTABLE s kódy . Funkce přizpůsobení umožňují uživateli přetáhnout tlačítko na nové místo nebo odebrat tlačítko přetažením mimo panel nástrojů. Uživatel navíc může poklikáním na panel nástrojů zobrazit dialogové okno Přizpůsobit panel nástrojů, které uživateli umožňuje přidávat, odstraňovat a měnit uspořádání tlačítek panelu nástrojů. Dialogové okno zobrazíte pomocí TB_CUSTOMIZE příkazu. Aplikace určuje, zda jsou funkce přizpůsobení k dispozici uživateli a řídí rozsah, v jakém může uživatel přizpůsobit panel nástrojů.
V rámci procesu přizpůsobení aplikace často potřebují uložit a obnovit stav panelu nástrojů. Mnoho aplikací například ukládá stav panelu nástrojů před tím, než uživatel začne přizpůsobovat panel nástrojů pro případ, že uživatel později chce obnovit panel nástrojů do původního stavu. Ovládací prvek panelu nástrojů automaticky neuchová záznam o svém stavu předběžného určení. Aby bylo možné aplikaci obnovit, musí aplikace uložit stav panelu nástrojů. Další informace naleznete v tématu Použití ovládacích prvků panelu nástrojů.
Povolení sledování za tepla
Funkce sledování znamená, že když se ukazatel myši pohybuje nad položkou, změní se vzhled tlačítka. Pokud jsou vizuální styly povolené, panely nástrojů ve výchozím nastavení podporují okamžité zvýraznění. V opačném případě pouze ovládací prvky panelu nástrojů vytvořené s použitím stylu TBSTYLE_FLAT podporují sledování. Pomocí jiných stylů oken v kombinaci s TBSTYLE_FLAT můžete vytvářet panely nástrojů, které umožňují aktivní sledování, ale mají jiný vzhled než plochý panel nástrojů. Další informace naleznete v tématu Použití ovládacích prvků panelu nástrojů.