Strumenti definiti dall'utente
Strumenti definiti dall'utente di MFC supporta.Uno strumento definito dall'utente è un comando speciale che esegue un programma esterno, definito dall'utente.È possibile utilizzare il processo di personalizzazione per gestire gli strumenti definiti dall'utente.Tuttavia, non è possibile utilizzare questo processo se l'oggetto applicazione non è derivato da Classe CWinAppEx.Per ulteriori informazioni sulla personalizzazione, vedere Personalizzazione per MFC.
Se supporto definito dall'attivazione degli strumenti, la finestra di dialogo per la personalizzazione automaticamente include la scheda Strumenti .Nella figura seguente viene illustrata la pagina Strumenti .
Scheda strumenti della finestra di dialogo di personalizzazione
Per abilitare il supporto definito dall'utente degli strumenti
Per abilitare gli strumenti definiti dall'utente in un'applicazione, chiamata CWinAppEx::EnableUserTools.Tuttavia, è innanzitutto necessario definire più costanti nei file di risorse dell'applicazione per l'utilizzo come parametri per questa chiamata.
Nell'editor di risorse creare un comando fittizi che utilizza un ID appropriata di comandoNell'esempio, è possibile utilizzare ID_TOOLS_ENTRYcome l'id di comandoQuesto ID comando contrassegna una posizione in uno o più menu in cui il framework genera gli strumenti definiti dall'utente.
È necessario riservare alcuni ID consecutivi nella tabella di stringhe per rappresentare gli strumenti definiti dall'utente.Il numero di stringhe che sottoposte a shelving è uguale al numero massimo degli strumenti dell'utente che gli utenti possono definire.Nell'esempio seguente, questi vengono denominati ID_USER_TOOL1 con ID_USER_TOOL10.
È possibile fornire suggerimenti agli utenti di per aiutarli per selezionare le directory e gli argomenti per i programmi esterni che verranno chiamati come strumenti.A tale scopo, creare due menu di scelta rapida nell'editor di risorse.Nell'esempio sono denominati IDR_MENU_ARGS e IDR_MENU_DIRS.Per ogni comando in questi menu, definire una stringa nella tabella di stringhe di applicazione.ID di risorsa della stringa deve essere uguale all'identificazione di comando
È anche possibile creare una classe derivata da Classe CUserTool per sostituire l'implementazione predefinita.A tale scopo, comunicare le informazioni di runtime per la classe derivata come il quarto parametro in CWinAppEx::EnableUserTools, anziché RUNTIME_CLASS (Classe CUserTool).
Dopo avere definito le costanti appropriate, chiamare CWinAppEx::EnableUserTools per abilitare gli strumenti definiti dall'utente.
Nell'esempio di chiamata al metodo come utilizzare queste costanti:
EnableUserTools(ID_TOOLS_ENTRY, ID_USER_TOOL1, ID_USER_TOOL10, RUNTIME_CLASS(CUserTool), IDR_MENU_ARGS, IDR_MENU_DIRS);
In questo esempio, la scheda degli strumenti verrà inclusa nella finestra di dialogo Customization .Il framework sostituirà i comandi che corrisponde l'ID di comando ID_TOOLS_ENTRY in qualsiasi menu con il set di strumenti attualmente definiti utente ogni volta che un utente apre il menu.Gli ID di comando ID_USER_TOOL1 con ID_USER_TOOL10 sono riservati per l'utilizzo degli strumenti definiti dall'utente.La classe Classe CUserTool gestisce le chiamate agli strumenti dell'utente.La scheda dello strumento della finestra di dialogo Customization fornisce pulsanti a destra delle caselle di immissione della directory e l'argomento per accedere ai menu IDR_MENU_ARGS e IDR_MENU_DIRS.quando un utente seleziona un comando da uno di questi menu, il framework aggiunge alla casella di testo appropriata la stringa contenente l'ID della risorsa uguale all'identificazione di comando
Inclusi gli strumenti predefiniti
Se si desidera predefinire alcuni strumenti all'avvio dell'applicazione, è necessario eseguire l'override del metodo di CFrameWnd::LoadFrame della finestra principale dell'applicazione.In questo metodo, è necessario eseguire i passaggi seguenti.
Per aggiungere nuovi strumenti in LoadFrame
Ottenere un puntatore all'oggetto di Classe CUserToolsManager chiamando CWinAppEx::GetUserToolsManager.
Per ogni strumento che si desidera creare, chiamata CUserToolsManager::CreateNewTool.Questo metodo restituisce un puntatore a un oggetto di Classe CUserTool e aggiunge lo strumento appena creato utente alla raccolta interna di strumenti.Se si fornisce informazioni di runtime per una classe derivata di Classe CUserTool come il quarto parametro di CWinAppEx::EnableUserTools, CUserToolsManager::CreateNewTool creare un'istanza e restituirà un'istanza della classe.
Per ogni strumento, impostare l'etichetta di testo impostando CUserTool::m_strLabel e impostarne il comando chiamando CUserTool::SetCommand.L'implementazione predefinita di Classe CUserTool recupera automaticamente le icone disponibili dal programma specificato nella chiamata a SetCommand.