Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az MFC támogatja a felhasználó által definiált eszközöket. A felhasználó által definiált eszközök egy speciális parancsok, amelyek egy külső, felhasználó által megadott programot hajtanak végre. A testreszabási folyamat segítségével kezelheti a felhasználó által definiált eszközöket. Ezt a folyamatot azonban nem használhatja, ha az alkalmazásobjektum nem a CWinAppEx osztályból származik. A testreszabásról további információt az MFC testreszabása című témakörben talál.
Ha engedélyezte a felhasználó által definiált eszközök támogatását, a testreszabási párbeszédpanel automatikusan tartalmazza az Eszközök lapot. Az alábbi ábrán az Eszközök lap látható.
Testreszabás párbeszédpanel Eszközök lap
Felhasználó által definiált eszközök támogatásának engedélyezése
Ha engedélyezni szeretné a felhasználó által definiált eszközöket egy alkalmazásban, hívja meg a CWinAppEx::EnableUserTools parancsot. Először azonban több állandót kell definiálnia az alkalmazás erőforrásfájljaiban, hogy paraméterekként használhassa ezt a hívást.
Az erőforrás-szerkesztőben hozzon létre egy olyan próbabábuparancsot, amely egy megfelelő parancsazonosítót használ. Az alábbi példában a parancsazonosítót használjuk ID_TOOLS_ENTRY . Ez a parancsazonosító megjelöl egy helyet egy vagy több menüben, ahol a keretrendszer beszúrja a felhasználó által definiált eszközöket.
A felhasználó által definiált eszközök megjelenítéséhez hozzá kell rendelni néhány egymást követő azonosítót a sztringtáblában. A félretett sztringek száma megegyezik a felhasználók által definiálható felhasználói eszközök maximális számával. Az alábbi példában ezeket ID_USER_TOOL1-től ID_USER_TOOL10-ig nevezték el.
Javaslatokat tehet a felhasználóknak, hogy segítsenek kiválasztani az eszközökként meghívandó külső programok könyvtárait és argumentumait. Ehhez hozzon létre két előugró menüt az erőforrás-szerkesztőben. Az alábbi példában ezek neve IDR_MENU_ARGS és IDR_MENU_DIRS. A menük minden parancsához definiáljon egy sztringet az alkalmazás sztringtáblájában. A sztring erőforrás-azonosítójának meg kell egyenlõnek lennie a parancsazonosítóval.
A CUserTool osztályból származtatott osztályt is létrehozhat az alapértelmezett implementáció lecseréléséhez. Ehhez adja meg a származtatott osztály futtatókörnyezeti adatait a CWinAppEx::EnableUserTools negyedik paramétereként a RUNTIME_CLASS(CUserTool osztály) helyett.
A megfelelő állandók definiálása után hívja meg a CWinAppEx::EnableUserTools parancsot a felhasználó által definiált eszközök engedélyezéséhez.
Az alábbi metódushívás bemutatja, hogyan használhatja ezeket az állandókat:
EnableUserTools(ID_TOOLS_ENTRY,
ID_USER_TOOL1,
ID_USER_TOOL10,
RUNTIME_CLASS(CUserTool),
IDR_MENU_ARGS,
IDR_MENU_DIRS);
Ebben a példában az Eszközök lap megjelenik a Testreszabás párbeszédpanelen. A keretrendszer minden olyan parancsot lecserél, amely megfelel a parancsazonosítónak ID_TOOLS_ENTRY bármely menüben a jelenleg definiált felhasználói eszközök készletével, amikor egy felhasználó megnyitja a menüt. A ID_USER_TOOL1 és ID_USER_TOOL10 közötti parancsazonosítók fenntartva vannak a felhasználó által definiált eszközök számára. Az osztály CUserTool osztálya kezeli a felhasználói eszközökre irányuló hívásokat. A Testreszabás párbeszédpanel eszközlapja az argumentum- és könyvtárbejegyzési mezők jobb oldalán található gombokat tartalmaz a menük IDR_MENU_ARGS és IDR_MENU_DIRS eléréséhez. Amikor egy felhasználó kiválaszt egy parancsot ezen menük egyikéből, a keretrendszer hozzáfűzi a megfelelő szövegmezőhöz azt a sztringet, amelynek erőforrás-azonosítója megegyezik a parancsazonosítóval.
Előre definiált eszközökkel együtt
Ha előre szeretne definiálni néhány eszközt az alkalmazás indításakor, felül kell bírálnia az alkalmazás főablakának CFrameWnd::LoadFrame metódusát. Ebben a módszerben a következő lépéseket kell végrehajtania.
Új eszközök hozzáadása a LoadFrame-ben
A CWinAppEx::GetUserToolsManager meghívásával szerezze be a CUserToolsManager osztályobjektumra mutató mutatót.
Minden létrehozni kívánt eszközhöz hívja meg a CUserToolsManager::CreateNewTool parancsot. Ez a metódus egy CUserTool osztályobjektumra mutató mutatót ad vissza, és hozzáadja az újonnan létrehozott felhasználói eszközt az eszközök belső gyűjteményéhez. Ha megadta a CUserTool Class egy származtatott osztályának futtatókörnyezeti adatait a CWinAppEx::EnableUserTools negyedik paramétereként, akkor a CUserToolsManager::CreateNewTool annak az osztálynak egy példányát fogja példányosítani és visszaadni.
Minden eszközhöz állítsa be a szövegfeliratot úgy, hogy beállítja
CUserTool::m_strLabel, és állítsa be a parancsot úgy, hogy meghívjaCUserTool::SetCommand. A CUserTool osztály alapértelmezett implementációja automatikusan lekéri a rendelkezésre álló ikonokat a hívásbanSetCommandmegadott programból.
Lásd még
Az MFC testreszabása
CUserTool osztály
CUserToolsManager osztály
CWinAppEx osztály