Názorný postup: Umístění ovládacích prvků na panelech nástrojů
Toto téma popisuje, jak přidat tlačítko panelu nástrojů, který obsahuje ovládací prvek systému Windows na panel nástrojů.Tlačítko panelu nástrojů MFC, musí být Třída CMFCToolBarButton-odvozené třídy, například Třída CMFCToolBarComboBoxButton, Třída CMFCToolBarEditBoxButton, Třída CMFCDropDownToolbarButton, nebo Třída CMFCToolBarMenuButton.
Přidání ovládacích prvků do panelů nástrojů
Chcete-li na panel nástrojů přidat ovládací prvek, postupujte takto:
Rezervujte ID zástupný zdroj pro tlačítka v panelu nástrojů prostředku nadřazené.Další informace o vytváření tlačítek panelu nástrojů editoru aplikace Visual Studio naleznete Panel nástrojů editoru téma.
Obrázek na panelu nástrojů (ikona tlačítka) pro bitmapy nadřazené nástrojů na tlačítko rezervujte.
V popisovači zprávy, která zpracovává AFX_WM_RESETTOOLBAR zpráva, proveďte následující:
Sestavit pomocí tlačítka CMFCToolbarButton-odvozené třídy.
Nahradit figuríny tlačítko Nový ovládací prvek pomocí CMFCToolBar::ReplaceButton.Můžete vytvořit objekt tlačítka v zásobníku, protože ReplaceButton zkopíruje objekt tlačítka a udržuje kopii.
[!POZNÁMKA]
Pokud jste povolili úpravy v aplikaci, bude pravděpodobně nutné resetovat pomocí panelu nástrojů Obnovit tlačítka panely nástrojů kartě vlastní dialogové okno zobrazit aktualizovaný ovládací prvek aplikace vývojáře.Stát nástrojů je uložen v registru systému Windows a informace v registru je zavedena a použita po ReplaceButton metoda je proveden během spuštění aplikace.
Přizpůsobení panelu nástrojů Ovládací prvky a
Příkazy kartě vlastní dialogové okno obsahuje seznam příkazů, které jsou k dispozici v aplikaci.Standardně vlastní dialogové okno zpracuje nabídky aplikací a vytvoří seznam nástrojů Standardní tlačítka v každé kategorii nabídky.Chcete-li zachovat rozšířené funkce, které poskytují nástrojů Ovládací prvky, je třeba nahradit standardní tlačítka vlastní ovládací prvek v vlastní dialogové okno.
Povolení úprav vytvoříte vlastní dialogovém okně přizpůsobení popisovač OnViewCustomize pomocí Třída CMFCToolBarsCustomizeDialog třídy.Před zobrazením vlastní dialogovém okně voláním CMFCToolBarsCustomizeDialog::Create, volání CMFCToolBarsCustomizeDialog::ReplaceButton nahradit standardní tlačítka nový ovládací prvek.
Příklad: Vytvoření pole se seznamem Hledat
Tato část popisuje, jak vytvořit Find seznamem se zobrazí na panelu nástrojů a obsahuje naposledy použité vyhledávací řetězce.Uživatel může do ovládacího prvku zadejte řetězec a potom stisknutím klávesy enter vyhledejte dokument nebo stisknutím klávesy ESC vraťte fokus hlavní rámec.Tento příklad předpokládá, že v zobrazení dokumentu Třída CEditView-odvozené zobrazení.
Vytvoření ovládacího prvku hledání
Nejprve vytvořte Find seznamem:
Přidání tlačítka a příkazy k prostředkům aplikací:
Přidat nové tlačítko s prostředky aplikací ID_EDIT_FIND ID příkazu na panel nástrojů v aplikaci a všechny rastrové obrázky přidružené k panelu nástrojů.
Vytvoření nové položky nabídky s ID ID_EDIT_FIND příkaz.
Přidat nový řetězec "Najít text\nFind" v tabulce řetězce a přiřadit ji ID_EDIT_FIND_COMBO příkaz ID.Toto číslo bude použito jako ID příkazu Find tlačítko pole se seznamem.
[!POZNÁMKA]
Protože ID_EDIT_FIND je standardní příkaz, který je zpracována CEditView, není potřeba provádět speciální popisovač pro tento příkaz.Však musí implementovat rutiny pro nový příkaz ID_EDIT_FIND_COMBO.
Vytvořit novou třídu CFindComboBox, odvozené z Třída CComboBox.
V CFindComboBox třídy, přepsat PreTranslateMessage virtuální metody.Tato metoda umožní seznamem zpracovat WM_KEYDOWN zprávy.Pokud uživatel klávesu escape počet úspěšných přístupů (VK_ESCAPE), vraťte do okna Hlavní rámec fokus.Pokud uživatel klávesu Enter počet úspěšných přístupů (VK_ENTER), zaúčtovat do okna Hlavní rámec WM_COMMAND zprávu obsahující ID_EDIT_FIND_COMBO příkaz ID.
Vytvoření třídy pro Find tlačítko pole se seznamem, odvozené z Třída CMFCToolBarComboBoxButton.V tomto příkladu je název CFindComboButton.
Konstruktoru CMFCToolbarComboBoxButton má tři parametry: ID příkazového tlačítka, index obrázku pro tlačítko a styl pole se seznamem.Nastavení těchto parametrů:
Předat ID_EDIT_FIND_COMBO jako ID příkazu.
Použití CCommandManager::GetCmdImage s ID_EDIT_FIND získat index obrázku.
Seznam stylů pro pole se seznamem dostupných naleznete na Pole se seznamem stylů.
V CFindComboButton třídy, přepsat CMFCToolbarComboBoxButton::CreateCombo metoda.Zde je třeba vytvořit CFindComboButton objektu a vrátit ukazatel.
Použití IMPLEMENT_SERIAL makra tak, aby se seznamem tlačítko trvalé.Správce centra automaticky načte a uloží na tlačítko Stav v registru systému Windows.
Implementace ID_EDIT_FIND_COMBO zpracování v zobrazení dokumentu.Použití CMFCToolBar::GetCommandButtons s ID_EDIT_FIND_COMBO načíst všechny Find tlačítka pole se seznamem.Z důvodu úprav může být několik kopií tlačítka se stejným ID příkazu.
V popisovači zprávy ID_EDIT_FIND OnFind, použijte CMFCToolBar::IsLastCommandFromButton určit, zda byl odeslán příkaz Hledat z Find tlačítko pole se seznamem.Pokud ano, text najít a přidat vyhledávací řetězec do pole se seznamem.
Přidání ovládacího prvku najít hlavní panel nástrojů
Chcete-li do panelu nástrojů přidat tlačítko pole se seznamem, postupujte takto:
Implementace AFX_WM_RESETTOOLBAR popisovači zprávy OnToolbarReset v okně hlavní rámec.
[!POZNÁMKA]
Rámci odešle tuto zprávu do okna Hlavní rámec při inicializaci během spuštění aplikace na panelu nástrojů nebo na panelu nástrojů je obnovena během úprav.V obou případech je nutné nahradit standardní tlačítka vlastní Find tlačítko pole se seznamem.
V AFX_WM_RESETTOOLBAR zpracování, se přezkoumá ID nástrojů, WPARAM z AFX_WM_RESETTOOLBAR zprávy.Pokud je roven nástrojů, který obsahuje ID nástrojů Find tlačítko pole se seznamem, volání CMFCToolBar::ReplaceButton nahradit Find tlačítka (je tlačítko s ID příkazu ID_EDIT_FIND) s CFindComboButton objektu.
[!POZNÁMKA]
Můžete vytvořit CFindComboBox objektu v zásobníku, protože ReplaceButton zkopíruje objekt tlačítka a udržuje kopii.
Přidání ovládacího prvku hledání dialogové okno Vlastní
V obslužné rutině přizpůsobení OnViewCustomize, volání CMFCToolBarsCustomizeDialog::ReplaceButton nahradit Find tlačítka (je tlačítko s ID příkazu ID_EDIT_FIND) s CFindComboButton objektu.
Viz také
Referenční dokumentace
Třída CMFCToolBarComboBoxButton
Třída CMFCToolBarsCustomizeDialog