Questa nota descrive le implementazioni di comando standard fornite da MFC 2.0. Si prega di assicurarsi di leggere 21 nota tecnica in primo luogo dal momento che descrive i meccanismi utilizzati per implementare molti dei comandi standard.
Questa descrizione si presuppone la conoscenza delle architetture MFC, API e pratica di programmazione comune. Documentato come privi di documenti "implementazione solo" le API sono descritte. Questo non è un punto di partenza conoscere le caratteristiche di o il modo di programmare in MFC. Consultare il manuale del programmatore di Visual C++ per informazioni più generali e particolari di API documentate.
Il problema
MFC definisce molti gli ID di comando standard nel file di intestazione AFXRES.H. Framework per questi comandi varia. Capire dove e come le classi del framework di gestire questi comandi volontà non solo mostrarvi come funziona internamente il quadro, ma fornirà informazioni utili su come personalizzare le implementazioni standard e speriamo che vi insegnano alcune tecniche per l'implementazione i gestori di comando.
Contenuto di questa nota tecnica
Ogni comando ID è descritto in due sezioni:
La maggior parte delle implementazioni di comando predefinite sono precablate in mappa messaggi della classe base del framework. Ci sono alcune implementazioni di comando che richiedono cablaggio esplicito nella classe derivata. Questi sono descritti sotto "Note". Se avete scelto le opzioni giuste in creazione guidata applicazione, questi gestori predefinito saranno collegati per voi nell'applicazione scheletro generato.
Convenzione di denominazione
Comandi standard seguono la convenzione di denominazione semplice che si raccomanda di che usare se possibile. Comandi più standard sono situati in luoghi standard nella barra dei menu di un'applicazione. Il nome simbolico del comando inizia con ID "_" seguito dal nome del menu popup standard, seguito dal nome di elemento del menu. Il nome simbolico è in maiuscolo con carattere di sottolineatura parola-pause. Per i comandi che non dispongono di nomi di elementi di menu standard, un nome di comando logico è definito a partire da "ID"_ (ad esempio, ID_NEXT_PANE).
Usiamo il prefisso "ID _" per indicare i comandi che sono stati progettati per essere associato a voci di menu, barra di navigazione o altri oggetti dell'interfaccia utente comando. Gestori di comandi, gestione di comandi "ID" _ devono utilizzare i meccanismi ON_COMMAND e ON_UPDATE_COMMAND_UI dell'architettura comando MFC.
Si raccomanda di che usare il prefisso "IDM" standard per le voci di menu che non seguono l'architettura di comando e bisogno di codice dal menu specifici per attivare e disattivare loro. Naturalmente il numero di comandi del menu specifico deve essere piccolo poiché seguendo l'architettura di comando MFC non solo rende gestori di comandi più potenti (dato che lavorano con barre degli strumenti), ma rende il codice del gestore comando riutilizzabile.
ID Ranges
Per maggiori dettagli sull'uso di intervalli ID in MFC fare riferimento a 20 Note tecniche.
Comandi standard MFC rientrano nella gamma 0xE000 a 0xEFFF. Per favore non fare affidamento sui valori specifici di questi ID dal momento che sono soggette a modifiche nelle versioni future della Biblioteca.
L'applicazione deve definire i suoi comandi nella gamma 0x8000-0xDFFF.
ID di comando standard
Per ogni ID di comando, c'è una stringa di messaggio standard riga tempestiva che può essere trovata nel file richiede.RC. L'ID di stringa per tale prompt menu deve essere lo stesso per quanto riguarda l'ID di comando.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
CWinApp::OnFileNew implementa questo comando in modo diverso a seconda del numero di modelli di documento nell'applicazione. Se c'è un solo CDocTemplate, CWinApp::OnFileNew verrà creato un nuovo documento di quel tipo, nonché la corretta classe frame e vista.
Se c'è più di un CDocTemplate, CWinApp::OnFileNew richiederà all'utente con una finestra di dialogo (AFX_IDD_NEWTYPEDLG) permettendo loro di selezionare quale tipo di documento da utilizzare. I selezionati CDocTemplate viene utilizzato per creare il documento.
Una personalizzazione comuni della ID_FILE_NEW è di fornire una diversa e più scelta grafica dei tipi di documento. In questo caso puoi implementare il proprio CMyApp::OnFileNew e posizionarlo nella mappa del messaggio, invece di CWinApp::OnFileNew. Non non c'è alcun bisogno di chiamare l'implementazione della classe base.
Un'altra personalizzazione comuni di ID_FILE_NEW è quello di fornire un comando separato per la creazione di un documento di ogni tipo. In questo caso si deve definire il nuovo comando IDs, ad esempio ID_FILE_NEW_CHART e ID_FILE_NEW_SHEET.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
CWinApp::OnFileOpen ha un'implementazione molto semplice di CWinApp::DoPromptFileName seguito da CWinApp::OpenDocumentFile con il nome di file o percorso del file per aprire la chiamata. La routine di implementazione CWinApp DoPromptFileName viene visualizzata la finestra di dialogo FileOpen e riempie le estensioni dei file ottenute da modelli di documento corrente.
Una personalizzazione comuni della ID_FILE_OPEN è per personalizzare la finestra di dialogo FileOpen oppure filtri di file aggiuntivi. La modalità consigliata per personalizzare questo è per sostituire l'implementazione predefinita con il proprio dialogo FileOpen, chiamare CWinApp::OpenDocumentFile con file del documento o il nome del percorso. Non non c'è alcun bisogno di chiamare la classe base.
CDocument::OnFileClose chiama CDocument:: SaveModified per richiedere all'utente di salvare il documento se esso è stato modificato e quindi chiama OnCloseDocument. Tutta la logica di chiusura, tra cui distruggendo il documento, viene fatto nella routine OnCloseDocument.
&Notanbsp;ID_FILE_CLOSE agisce in modo diverso da un messaggio WM_CLOSE o un comando di sistema SC_CLOSE inviati alla finestra cornice di documenti. Chiusura di una finestra si chiuderà il documento solo se è l'ultima finestra di cornice che mostra il documento. Chiusura del documento con ID_FILE_CLOSE non solo si chiuderà il documento ma chiuderà tutte le finestre con frame che mostra il documento.
L'implementazione utilizza una routine di supporto CDocument::DoSave che viene utilizzato per OnFileSave e OnFileSaveAs. Se si salva un documento che non è stato salvato prima (cioè, esso non ha un nome di percorso, come nel caso di FileNew) o che è stato letto da un documento di sola lettura, la logica OnFileSave sarà si comportano come il comando ID_FILE_SAVE_AS e chiedere all'utente di fornire un nuovo nome file. Il processo di apertura del file e facendo il risparmio effettivo avviene attraverso la funzione virtuale OnSaveDocument.
Ci sono due ragioni comuni per personalizzare ID_FILE_SAVE. Per i documenti che non si salva, semplicemente rimuovere la ID_FILE_SAVE voci di menu e i pulsanti della barra degli strumenti dall'interfaccia utente. Assicurarsi inoltre che non si sporca mai il documento (che è, mai chiamata CDocument::SetModifiedFlag) e il quadro non causerà mai il documento che deve essere salvato. Per i documenti che salvare in un posto diverso da un file su disco, definire un nuovo comando per quell'operazione.
Nel caso di un COleServerDoc, ID_FILE_SAVE è usato sia per file Salva (per i normali documenti) e l'aggiornamento dei file (per documenti incorporati).
Se i dati del documento vengono memorizzati in file su disco individuali, ma non si desidera utilizzare il valore predefinito CDocument serializzare attuazione, si devono eseguire l'override di CDocument::OnSaveDocument invece di OnFileSave.
L'implementazione di CDocument::OnFileSaveAs utilizza la stessa routine di supporto CDocument::DoSave come OnFileSave. Il comando OnFileSaveAs viene gestito come ID_FILE_SAVE se i documenti non avevano alcun nome di file prima di salvare. COleServerDoc::OnFileSaveAs implementa la logica per salvare un file di dati normale documento o per salvare un documento server che rappresenta un oggetto OLE incorporato in un'altra applicazione in un file separato.
Se si personalizza la logica del ID_FILE_SAVE, probabilmente vorrete personalizzare ID_FILE_SAVE_AS in modo simile o l'operazione di "Salva come" possa non essere applicabili al vostro documento. È possibile rimuovere la voce di menu dalla barra dei menu, se non è necessario.
L'implementazione di COleServerDoc::OnFileSaveCopyAs è molto simile a CDocument::OnFileSaveAs, salvo che l'oggetto del documento non è "attaccato" nel file sottostante dopo il salvataggio. Cioè, se il documento in memoria è stata "modificato" prima salva, esso è ancora "modificato". Inoltre, questo comando non ha alcun effetto sul nome del percorso o titolo archiviato nel documento.
L'implementazione di COleServerDoc::OnUpdateDocument semplicemente notifiies il contenitore che l'embedding deve essere salvato. Il contenitore chiama quindi appropriato OLE API al fine di salvare l'oggetto incorporato.
Attualmente non esiste alcuna norma per questa finestra di dialogo, e il quadro non ha alcuna implementazione predefinita di questo comando.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
Questo comando richiama la finestra di dialogo di configurazione di stampa standard che consente all'utente di personalizzare la stampante e stampare le impostazioni per almeno questo documento o al massimo tutti i documenti in questa applicazione. È necessario utilizzare il pannello di controllo per modificare le impostazioni della stampante predefinita per l'intero sistema.
CWinApp::OnFilePrintSetup ha un'implementazione molto semplice creazione di un oggetto CPrintDialog e chiamare la funzione di implementazione di CWinApp::DoPrintDialog . Consente di impostare l'impostazione applicazione predefinita stampante.
L'esigenza comune per la personalizzazione di questo comando è per consentire le impostazioni della stampante al documento, che devono essere conservate con il documento quando salvate. Per fare questo che è necessario aggiungere un gestore mappa messaggi nella classe CDocument che crea un oggetto CPrintDialog , inizializzato con gli attributi appropriati stampante (di solito hDevMode e hDevNames), chiamare il CPrintDialog::DoModal e salvare le impostazioni della stampante modificati. Per un'implementazione affidabile, dovrebbe guardare l'implementazione di CWinApp::DoPrintDialog per il rilevamento di errori e CWinApp::UpdatePrinterSelection per trattare con le impostazioni predefinite sensate e rilevamento delle modifiche a livello di sistema stampante.
&Notanbsp; È necessario collegare questo a vostro CView-derivati mappa messaggi della classe per abilitare questa funzionalità.
Questo comando consente di stampare il documento corrente, o più correttamente, avvia il processo di stampa, che coinvolge richiamando la finestra di dialogo Stampa ed esegue il motore di stampa.
CView::OnFilePrint implementa questo comando e il ciclo di stampa principale. Chiama il virtuale OnPreparePrinting di conferma dell'utente con la finestra di dialogo Stampa. Poi si prepara l'output DC per andare alla stampante, viene visualizzata la finestra di stampa progresso (AFX_IDD_PRINTDLG) e invia la fuga StartDoc alla stampante. CView::OnFilePrint contiene anche il ciclo di stampa orientato alla pagina principale. Per ogni pagina, chiama il virtuale CView::OnPrepareDC , seguita da una fuga StartPage e chiama il virtuale CView::OnPrint per quella pagina. Al termine, viene chiamato il virtuale CView:: OnEndPrinting e viene chiusa la finestra di dialogo Stampa di progresso.
L'architettura di stampa MFC è progettato per collegare in molti modi diversi per l'anteprima di stampa e stampa. Normalmente si troveranno le varie funzioni sottoponibili a override CView adeguato per qualsiasi attività di stampa orientato alla pagina. Solo in caso di un'applicazione che utilizza la stampante per l'output orientato non-page, si dovrebbe trovare la necessità di sostituire l'implementazione di ID_FILE_PRINT.
&Notanbsp; È necessario collegare questo a vostro CView-derivati mappa messaggi della classe per abilitare questa funzionalità.
CView::OnFilePrintPreview avvia la modalità di anteprima di stampa chiamando la funzione di supporto documentato CView::DoPrintPreview. CView::DoPrintPreview è il motore principale per il ciclo di anteprima di stampa, così come OnFilePrint è il motore principale per il ciclo di stampa.
L'operazione di anteprima di stampa può essere personalizzato in una varietà di modi, passando i parametri diversi a DoPrintPreview. Si prega di sfondi tecnici nota 30, che discute alcuni dei dettagli di anteprima di stampa e come personalizzarlo.
CWinApp::OnUpdateRecentFileMenu è un gestore dell'interfaccia utente di comandi di aggiornamento che è uno degli usi più avanzati del meccanismo ON_UPDATE_COMMAND_UI . Nella tua risorsa di menu, è solo bisogno di definire una voce di menu unico con ID ID_FILE_MRU_FILE1. Questa voce di menu rimane inizialmente disabili.
Come il MRU elenco cresce, più menù, gli elementi vengono aggiunti all'elenco. Le impostazioni predefinite CWinApp implementazione standard, fino al limite standard dei quattro più file utilizzati di recente. È possibile modificare l'impostazione predefinita chiamando CWinApp::LoadStdProfileSettings con un valore maggiore o minore. L'elenco MRU viene archiviato in dell'applicazione.File INI. L'elenco viene caricato nella funzione InitInstance dell'applicazione se si chiama LoadStdProfileSettingse si è salvato alla chiusura dell'applicazione. Il gestore di interfaccia utente MRU comandi di aggiornamento inoltre converte percorsi assoluti a percorsi relativi per la visualizzazione del menu file.
CWinApp::OnOpenRecentFile è il gestore ON_COMMAND che esegue il comando effettivo. Ottiene semplicemente il nome del file dall'elenco MRU e chiamate CWinApp::OpenDocumentFile, che fa tutto il lavoro di apertura del file e l'aggiornamento dell'elenco MRU.
Personalizzazione di questo gestore di comando non è raccomandato.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando utilizzando CEdit::Clear. Il comando è disattivato se non non c'è nessuna selezione corrente.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID. Vedere l'esempio MFC Tutorial SCARABOCCHIARE per un'implementazione di esempio.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, che copia il testo selezionato negli Appunti come CF_TEXT utilizzando CEdit::Copy. Il comando è disattivato se non non c'è nessuna selezione corrente.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, che taglia il testo selezionato negli Appunti come CF_TEXT utilizzando CEdit::Cut. Il comando è disattivato se non non c'è nessuna selezione corrente.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, che chiama la funzione di supporto OnEditFindReplace di utilizzare e memorizzare le impostazioni precedenti Trova/Sostituisci in variabili di implementazione privato di implementazione. La classe CFindReplaceDialog viene utilizzata per gestire la finestra di dialogo non modale per chiedere conferma all'utente.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, che copia i dati correnti negli Appunti sostituendo il testo selezionato utilizzando CEdit::Paste. Il comando è disattivato se non c'è nessun CF_TEXT negli Appunti.
COleClientDoc fornisce solo un gestore di interfaccia utente di comandi di aggiornamento per questo comando. Se gli Appunti non contengano un elemento/oggetto OLE integrabile, il comando verrà disattivato. Tu sei responsabile della scrittura il gestore per il comando effettivo di fare l'incollatura effettivo. Se l'applicazione OLE possibile incollare anche altri formati, è necessario fornire il proprio gestore di aggiornamento comandi dell'interfaccia utente in vista o documento (da qualche cioè, parte prima di COleClientDoc nel comando come bersaglio di routing).
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Per sostituire l'implementazione standard OLE, utilizzare COleClientItem::CanPaste.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
COleDocument fornisce solo un gestore di interfaccia utente di comandi di aggiornamento per questo comando. Se gli Appunti contengono non correlabili oggetto OLE/item, il comando verrà disattivato. Tu sei responsabile della scrittura il gestore per il comando effettivo di fare l'incollatura effettivo. Se l'applicazione OLE possibile incollare anche altri formati, è necessario fornire il proprio gestore di aggiornamento comandi dell'interfaccia utente in vista o documento (da qualche cioè, parte prima COleDocument nel comando come bersaglio di routing).
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Per sostituire l'implementazione standard OLE, utilizzare COleClientItem::CanPasteLink.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata. MFC non prevede questa finestra di dialogo.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando per ripetere l'ultima operazione di ricerca. Vengono utilizzate le variabili di implementazione privato per trovare scorso. Il comando è disattivato se non può essere tentato un ritrovamento.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, che chiama la funzione di supporto OnEditFindReplace di utilizzare e memorizzare le impostazioni precedenti Trova/Sostituisci in variabili di implementazione privato di implementazione. La classe CFindReplaceDialog viene utilizzata per gestire la finestra di dialogo non modale che chiede all'utente.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, che seleziona tutto il testo del documento. Il comando è disattivato se non non c'è alcun testo per selezionare.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
CEditView fornisce un'implementazione di questo comando, utilizzando CEdit::Undo. Il comando è disattivato se CEdit::CanUndo restituisce FALSE.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per ogni CView-classe derivata.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
CMDIFrameWnd::OnWindowNew implementa questa potente funzionalità utilizzando il modello di documento del documento corrente per creare un altro frame contenente un'altra visualizzazione del documento corrente.
Come la maggior parte delle multiple document interface (MDI) finestra comandi di menu, il comando è disattivato se non non c'è nessuna finestra di figlio MDI attiva.
Personalizzazione di questo gestore di comando non è consigliato. Se si desidera fornire un comando che crea ulteriori visualizzazioni o finestre con frame, probabilmente sarà meglio inventare il proprio comando. È possibile clonare il codice da CMDIFrameWnd::OnWindowNew e modificarlo per le classi specifiche di telaio e visualizzazione di vostro gradimento.
CMDIFrameWnd implementa questo comando MDI standard in una funzione di supporto di implementazione OnMDIWindowCmd. Questo helper mappe gli ID di comando ai messaggi di finestre MDI e pertanto possono condividere un sacco di codice.
Come la maggior parte dei comandi di menu finestra MDI, il comando è disattivato se non non c'è nessuna finestra di figlio MDI attiva.
Personalizzazione di questo gestore di comando non è raccomandato.
CMDIFrameWnd implementa questo comando MDI standard in una funzione di supporto di implementazione OnMDIWindowCmd. Questo helper mappe gli ID di comando ai messaggi di finestre MDI e pertanto possono condividere un sacco di codice.
Come la maggior parte dei comandi di menu finestra MDI, il comando è disattivato se non non c'è nessuna finestra di figlio MDI attiva.
Personalizzazione di questo gestore di comando non è raccomandato.
Questo comando è implementato in CMDIFrameWnd come ID_WINDOW_CASCADE, tranne un diverse finestre MDI messaggio viene utilizzato per l'operazione.
Si dovrebbe scegliere l'orientamento delle mattonelle di default per la vostra applicazione. È possibile farlo modificando l'ID per la voce di menu "Tile" finestra a ID_WINDOW_TILE_HORZ o ID_WINDOW_TILE_VERT.
Questo comando è implementato in CMDIFrameWnd come ID_WINDOW_CASCADE, tranne un diverse finestre MDI messaggio viene utilizzato per l'operazione.
Si dovrebbe scegliere l'orientamento delle mattonelle di default per la vostra applicazione. È possibile farlo modificando l'ID per la voce di menu "Tile" finestra a ID_WINDOW_TILE_HORZ o ID_WINDOW_TILE_VERT.
CView gestisce questo comando per l'esecuzione di CSplitterWnd . Se la vista è parte di una finestra con separatore, questo comando delegherà la funzione di implementazione CSplitterWnd::DoKeyboardSplit. Questo avrà luogo lo splitter una modalità che consentirà agli utenti di tastiera di dividere o annullare una finestra con separatore.
Questo comando è disattivato se la vista non è in uno splitter.
Personalizzazione di questo gestore di comando non è raccomandato.
Non esiste alcuna implementazione standard per circa casella di un'applicazione. L'applicazione creata da creazione guidata applicazione predefinita creerà una classe di finestre di dialogo personalizzate per la vostra applicazione e usarlo come vostra casella circa. Creazione guidata applicazione scriverà anche il gestore di comandi banale che gestisce questo comando e richiama la finestra di dialogo.
Quasi sempre si attuerà questo comando.
CWinApp::OnAppExit gestisce questo comando inviando un messaggio WM_CLOSE alla finestra principale dell'applicazione. Lo standard di chiusura dell'applicazione (spingendo per i file di sporchi e così via) viene gestito dall'implementazione CFrameWnd.
Personalizzazione di questo gestore di comando non è consigliato. Si esegue l'override di CWinApp::SaveAllModified o la CFrameWnd logica di chiusura è consigliato.
Se si sceglie di implementare questo comando, si raccomanda di che usare questo comando ID.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
CWinApp::OnHelpIndex gestisce questo comando chiamando banalmente CWinApp::WinHelp.
Personalizzazione di questo gestore di comando non è raccomandato.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
CWinApp::OnHelpUsing gestisce questo comando chiamando banalmente CWinApp::WinHelp.
Personalizzazione di questo gestore di comando non è raccomandato.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
CWinApp::OnContextHelp gestisce questo comando impostazione del cursore di modalità di aiuto, inserendo un ciclo modale e aspettando all'utente di selezionare una finestra per visualizzare la guida. Per maggiori dettagli sull'attuazione MFC aiutare fare riferimento a tecniche nota 28.
Personalizzazione di questo gestore di comando non è raccomandato.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
CWinApp::OnHelp gestisce questo comando ottenendo il contesto giusto per il contesto dell'applicazione corrente. Gestisce i semplice guida sensibile al contesto, guida sulle finestre di messaggio e così via. Per maggiori dettagli sull'attuazione MFC aiuto fare riferimento a tecniche nota 28.
Personalizzazione di questo gestore di comando non è raccomandato.
&Notanbsp; È necessario collegare questo a vostro CWinApp-derivati mappa messaggi della classe per abilitare questa funzionalità.
Questo comando è solitamente associato a CWinApp::OnHelpIndex.
Un gestore di comandi diversi può essere fornito, se si desidera è una distinzione tra predefinito aiuto e l'indice della guida.
CView gestisce questo comando per l'esecuzione di CSplitterWnd . Se la vista è parte di una finestra con separatore, questo comando delegherà la funzione di implementazione CSplitterWnd::OnNextPaneCmd. Questo sposterà la visualizzazione attiva al riquadro successivo nello splitter.
Questo comando è disattivato se la vista non è in uno splitter o non c'è nessun successivo riquadro per andare a.
Personalizzazione di questo gestore di comando non è raccomandato.
CView gestisce questo comando per l'esecuzione di CSplitterWnd . Se la vista è parte di una finestra con separatore, questo comando delegherà la funzione di implementazione CSplitterWnd::OnNextPaneCmd. Questo sposterà la visualizzazione attiva al riquadro precedente nella barra.
Questo comando è disattivato se la vista non è in uno splitter o non non c'è nessun riquadro precedente per andare a.
Personalizzazione di questo gestore di comando non è raccomandato.
Attualmente non esiste alcuna implementazione standard per questo comando. Deve implementare questo per la vostra CView-classe per inserire un nuovo elemento/oggetto OLE corrispondenza della selezione corrente derivata.
Tutte le applicazioni client OLE devono implementare questo comando. Creazione guidata applicazione, con l'opzione OLE, verrà creata un'implementazione ossatura di OnInsertObject nella classe di visualizzazione che dovrà completare.
Vedere l'esempio OLE di MFC OCLIENT esempio per un'implementazione completa di questo comando.
COleDocument gestisce questo comando utilizzando l'implementazione fornita da MFC della finestra di dialogo di collegamenti OLE. L'implementazione di questa finestra di dialogo è possibile accedere tramite la classe COleLinksDialog . Se il documento corrente non contiene tutti i collegamenti, il comando è disattivato.
Personalizzazione di questo gestore di comando non è raccomandato.
COleDocument utilizza questa gamma di ID di comando per i verbi supportati dall'elemento/oggetto OLE attualmente selezionato. Questo deve essere una gamma dal momento che un determinato tipo di elemento/oggetto OLE in grado di supportare zero o più verbi personalizzati. Nel menu dell'applicazione, si dovrebbe avere una voce di menu con l'ID di ID_OLE_VERB_FIRST. Quando il programma viene eseguito, il menu sarà aggiornato con la descrizione del verbo appropriato dal menu (o menu a comparsa con molti verbi). La gestione del menu OLE viene gestita da AfxOleSetEditMenu, fatto nel gestore di interfaccia utente di comandi di aggiornamento per questo comando.
Ci sono gestori di comandi esplicito per la gestione di ciascuno dell'ID di comando in questa gamma. COleDocument::OnCmdMsg viene sottoposto a override per intercettare tutti gli ID di comando in questo intervallo, li trasformano in numeri in base zero del verbo e avviare il server per quel verbo (tramite COleClientItem::DoVerb).
Personalizzazione o altro uso di questa gamma di ID di comando non è raccomandato.
CFrameWnd gestisce questo comando e il gestore di comando di aggiornamento dell'interfaccia utente per attivare o disattivare lo stato visibile della barra degli strumenti. La barra degli strumenti deve essere una finestra figlio del telaio con ID finestra figlio di AFX_IDW_TOOLBAR. Il gestore di comandi in realtà attiva o disattiva la visibilità della finestra barra degli strumenti. RecalcLayout viene utilizzato per ridisegnare la finestra cornice con la barra degli strumenti nel suo nuovo stato. Il gestore di comando di aggiornamento dell'interfaccia utente controlla la voce di menu quando la barra degli strumenti è visibile.
Personalizzazione di questo gestore di comando non è consigliato. Se si desidera aggiungere barre degli strumenti aggiuntivi, si vuole clonare e modificare il gestore di comandi e il gestore di comando di aggiornamento dell'interfaccia utente per questo comando.
Questo comando è implementato in CFrameWnd come ID_VIEW_TOOLBAR, tranne viene utilizzato un bambino differente finestra ID (AFX_IDW_STATUS_BAR).
Gestori di comandi solo aggiornamento
Ci sono diversi gli ID di comando standard che vengono utilizzati come indicatori nelle barre di stato. Questi utilizzano lo stesso comando di aggiornamento dell'interfaccia utente meccanismo per visualizzare il loro stato corrente visual durante il tempo di inattività di applicazione. Dal momento che essi non possono essere selezionate dall'utente (che è, voi non può spingere un riquadro di barra di stato), quindi non ha senso avere un gestore ON_COMMAND per questi ID di comando.
Tutti e tre di questi sono implementati in CFrameWnd::OnUpdateKeyIndicator, un supporto di attuazione che utilizza l'ID di comando per mappare la chiave virtuale appropriata. Un'implementazione comune attiva o disattiva (per i riquadri di stati disabilitati non = nessun testo) l'oggetto CCmdUI a seconda se la chiave appropriata virtuale è attualmente bloccata.
Personalizzazione di questo gestore di comando non è raccomandato.
Attualmente non esiste alcuna implementazione standard per tali indicatori.
Se si sceglie di implementare questi indicatori, si raccomanda di usare questi ID indicatore e mantenere l'ordinamento degli indicatori nella vostra barra di stato (che è, in questo ordine: EXT, CAP, NUM, SCRL, OVR, REC).
&Note tecniche per numero |nbsp; Note tecniche per la categoria