Sdílet prostřednictvím


Uživatelem definované nástroje

MFC podporuje vlastní nástroje.Vlastní nástroj je speciální příkaz, který spustí aplikaci externí, zadané uživatelem.Správa uživatelem definovaných nástrojů můžete použít proces úprav.Však nelze tento postup použít, pokud aplikační objekt není odvozen z Třída CWinAppEx.Další informace o přizpůsobení naleznete v tématu Přizpůsobení pro prostředí MFC.

Pokud jste povolili podporu nástrojů definované uživatelem, dialogové okno Vlastní nastavení automaticky zahrne Nástroje kartu.Následující ilustrace ukazuje Nástroje stránky.

Vlastní nastavení kartě dialogového okna nástroje

Karta Nástroje v dialogovém okně přizpůsobení

Povolení uživatelské nástroje odborné pomoci

Povolit uživatelské nástroje v aplikace, volání CWinAppEx::EnableUserTools.Nicméně je třeba nejdříve definovat několik konstant v souborech prostředků aplikace pro použití jako parametry pro toto volání.

V editoru prostředků vytvořte fiktivní příkaz, který používá identifikátor odpovídající příkaz.V následujícím příkladu používáme ID_TOOLS_ENTRY jako identifikátor příkazu.Toto ID příkazu označí umístění v jedné nebo více nabídek, kde vloží nástroje uživatelské rozhraní.

Je nutné nastavit stranou některé po sobě jdoucích ID v tabulce řetězců představující vlastní nástroje.Počet řetězců, které jste vyňaté z produkce se rovná maximální počet uživatelů nástroje, které uživatelé mohou definovat.V následujícím příkladu jsou pojmenovány ID_USER_TOOL1 přes ID_USER_TOOL10.

Návrhy můžete nabídnout uživatelům usnadňuje výběr adresářů a argumenty pro externí programy, které budou volány jako nástroje.Chcete-li to provést, vytvořte dvě rozbalovací nabídky v editoru prostředků.V následujícím příkladu jsou pojmenovány IDR_MENU_ARGS a IDR_MENU_DIRS.Pro každý příkaz v těchto nabídkách definujte řetězec v tabulce řetězců vaší aplikace.ID prostředku řetězce musí být rovna identifikátor příkazu.

Můžete také vytvořit odvozené třídy z Třída CUserTool Chcete-li nahradit výchozí implementace.Chcete-li to provést, předání informací o runtime pro odvozené třídy jako čtvrtý parametr v CWinAppEx::EnableUserTools místo RUNTIME_CLASS, která (Třída CUserTool).

Po definování konstanty odpovídající volání CWinAppEx::EnableUserTools Chcete-li povolit uživatelské nástroje.

Následující volání metody ukazuje, jak použít tyto konstanty:

    EnableUserTools(ID_TOOLS_ENTRY, ID_USER_TOOL1, ID_USER_TOOL10, RUNTIME_CLASS(CUserTool), IDR_MENU_ARGS, IDR_MENU_DIRS);

V tomto příkladu budou součástí nástroje klepněte vlastní dialogové okno.Rámci nahradí libovolný příkaz, který odpovídá ID příkazu ID_TOOLS_ENTRY v žádné nabídce se sadou nástrojů aktuálně definované uživatele při každém otevření této nabídky.ID příkazu ID_USER_TOOL1 přes ID_USER_TOOL10 jsou vyhrazeny pro použití nástrojů definované uživatelem.Třída Třída CUserTool zpracovává volání uživatele nástroje.Na kartě nástroje vlastní dialogové okno obsahuje tlačítka napravo od pole Položka argument a adresář pro přístup do nabídek IDR_MENU_ARGS a IDR_MENU_DIRS.Když uživatel vybere příkaz z jednoho z těchto nabídek, systém připojí do příslušného textového pole řetězec, který obsahuje Identifikátor prostředku rovna identifikátor příkazu.

Včetně předdefinované nástroje

Pokud chcete předdefinovat některé nástroje při spuštění aplikace, je nutné přepsat CFrameWnd::LoadFrame metoda hlavního okna aplikace.V této metodě je třeba provést následující kroky.

Chcete-li přidat nové nástroje v LoadFrame

  1. Získat ukazatel Třída CUserToolsManager objekt voláním CWinAppEx::GetUserToolsManager.

  2. Pro každý nástroj, který chcete vytvořit, volejte CUserToolsManager::CreateNewTool.Tato metoda vrátí ukazatel Třída CUserTool objektu a přidá do vnitřní kolekce nástroje nástroj nově vytvořený uživatel.Pokud jste zadali informace o běhu odvozenou třídu Třída CUserTool jako čtvrtý parametr CWinAppEx::EnableUserTools, CUserToolsManager::CreateNewTool bude konkretizovat a místo toho vrátí instanci této třídy.

  3. Pro jednotlivé nástroje, nastavte jeho textový popisek CUserTool::m_strLabel a nastavte jeho příkaz voláním CUserTool::SetCommand.Výchozí implementace Třída CUserTool z aplikace, která je určena v volání automaticky načte dostupné ikony SetCommand.

Viz také

Referenční dokumentace

Třída CUserTool

Třída CUserToolsManager

Třída CWinAppEx

Koncepty

Přizpůsobení pro prostředí MFC