Principy panelů nástrojů
Tento článek popisuje základní implementaci MFC, která umožňuje přidat do aplikace výchozí panel nástrojů výběrem možnosti v Průvodci aplikací. Probíraná témata zahrnují:
Možnost panelu nástrojů Průvodce aplikací
Pokud chcete získat jeden panel nástrojů s výchozími tlačítky, vyberte možnost Standardní dokovací panel nástrojů na stránce s popiskem Funkce uživatelského rozhraní. Tím se do aplikace přidá kód, který:
Vytvoří objekt panelu nástrojů.
Spravuje panel nástrojů, včetně možnosti ukotvit nebo plout.
Panel nástrojů v kódu
Panel nástrojů je objekt CToolBar deklarovaný jako datový člen třídy vaší aplikace CMainFrame
. Jinými slovy, objekt panelu nástrojů je vložen do objektu okna hlavního rámce. To znamená, že MFC vytvoří panel nástrojů při vytváření okna rámečku a zničí panel nástrojů při zničení okna rámečku. Následující částečná deklarace třídy pro aplikaci s více rozhraními dokumentu (MDI) zobrazuje datové členy pro vložený panel nástrojů a vložený stavový řádek. Zobrazuje také přepsání OnCreate
členské funkce.
class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
Vytváření panelu nástrojů probíhá v CMainFrame::OnCreate
souboru . MFC volá OnCreate po vytvoření okna rámce, ale před tím, než se zobrazí. Ve výchozím nastavení OnCreate
, které Průvodce aplikací generuje, provede následující úlohy panelu nástrojů:
CToolBar
Volá create členská funkce objektu vytvořit základní CToolBarCtrl objektu.Volá LoadToolBar pro načtení informací o prostředku panelu nástrojů.
Volání funkcí pro povolení dokování, plovoucích a popisů nástrojů Podrobnosti o těchto voláních najdete v článku Ukotvení a plovoucí panely nástrojů.
Poznámka
Ukázka MFC General DOCKTOOL obsahuje ilustrace starých i nových panelů nástrojů MFC. Panely nástrojů, které používají COldToolbar
volání v kroku 2 ( LoadBitmap
místo LoadToolBar
) a na SetButtons
. Nové panely nástrojů vyžadují volání LoadToolBar
.
Volání dokovacích, plovoucích a popisů nástrojů jsou volitelná. Pokud chcete, můžete tyto řádky OnCreate
odebrat. Výsledkem je panel nástrojů, který zůstává pevný, nemůže se s plovoucím nebo červeným nožkem zobrazit a nemůže zobrazit popisy nástrojů.
Úprava prostředku panelu nástrojů
Výchozí panel nástrojů, který získáte pomocí Průvodce aplikací, je založený na RT_TOOLBAR vlastním prostředku, který je zavedený v prostředí MFC verze 4.0. Tento prostředek můžete upravit pomocí editoru nástrojů. Editor umožňuje snadno přidávat, odstraňovat a měnit uspořádání tlačítek. Obsahuje grafický editor pro tlačítka, která jsou velmi podobná obecnému grafickému editoru v jazyce Visual C++. Pokud jste upravili panely nástrojů v předchozích verzích Visual C++, zjistíte teď mnohem jednodušší úlohu.
Pokud chcete k příkazu připojit tlačítko panelu nástrojů, dáte ho ID příkazu, například ID_MYCOMMAND
. Zadejte ID příkazu na stránce vlastností tlačítka v editoru nástrojů. Pak vytvořte funkci obslužné rutiny pro příkaz (další informace najdete v tématu Mapování zpráv na funkce ).
Nové členské funkce CToolBar pracují s prostředkem RT_TOOLBAR . LoadToolBar teď používá místo LoadBitmap k načtení rastrového obrázku obrázků tlačítek panelu nástrojů a SetButtons nastavit styly tlačítek a propojit tlačítka s rastrovými obrázky.
Podrobnosti o používání editoru nástrojů najdete v tématu Editor nástrojů.
Více panelů nástrojů
Průvodce aplikací poskytuje jeden výchozí panel nástrojů. Pokud v aplikaci potřebujete více než jeden panel nástrojů, můžete kód modelovat pro další panely nástrojů na základě kódu generovaného průvodcem pro výchozí panel nástrojů.
Pokud chcete jako výsledek příkazu zobrazit panel nástrojů, budete muset:
Vytvořte nový prostředek panelu nástrojů pomocí editoru nástrojů a načtěte ho
OnCreate
pomocí členské funkce LoadToolbar .Vložte nový objekt CToolBar do třídy okna hlavního rámce.
Proveďte příslušná volání
OnCreate
funkce pro ukotvení nebo plovoucí panel nástrojů, nastavte jeho styly atd.
O čem chcete vědět víc
MFC – implementace panelu nástrojů (přehled informací na panelech nástrojů)
CToolBar a CToolBarCtrl – třídy