Condividi tramite


TN022: Lo standard ordina l'implementazione

[!NOTA]

La seguente nota tecnica non è stata aggiornata dalla prima volta che viene inclusa nella documentazione online.Di conseguenza, alcune procedure e argomenti potrebbero non essere aggiornati o errati.Per le informazioni più recenti, è consigliabile cercare l'argomento di interesseindice della documentazione online.

Questa nota vengono descritte le implementazioni standard di comando fornite da MFC 2,0.Leggere nota tecnica 21 per prima in quanto vengono descritti i meccanismi utilizzati per implementare molti dei controlli standard.

Questa descrizione si presuppone la conoscenza delle architetture MFC, API e norma di programmazione corrente.“L'implementazione documentata nonché non documentata solo„ API viene descritta.Questo non è un strumento per imparare a utilizzare le funzionalità di o la programmazione in MFC.Fare riferimento a Visual C++ per ulteriori informazioni generali e per i dettagli di API indicate.

Il problema

MFC definisce molti ID di comando standard nel file di intestazione AFXRES.H.Il supporto del Framework a tali controlli esterni.Comprendere dove e come classi del framework gestisce questi controlli non solo viene illustrato come il framework funziona internamente ma fornite le informazioni utili su come personalizzare le implementazioni standard e insegnargli alcune tecniche per implementare gestori comandi.

Contenuto di questa nota tecnica

Ogni ID di comando è descritto in due sezioni:

  • Il titolo: il nome simbolico l'id comando, ad esempio ID_FILE_SAVE) seguito dallo scopo di comando, ad esempio “salva il documento corrente„) separato da due punti.

  • Descrizione di uno o più paragrafi quali classi implementano il comando e quali l'implementazione predefinita fa

La maggior parte delle implementazioni predefinite del comando vengono prewired della mappa messaggi della classe base del framework.Esistono alcune implementazioni di comando che richiedono i collegamenti espliciti nella classe derivata.Questi sono descritti in “di note„.Se sono state selezionate le corrette opzioni in AppWizard, questi gestori predefiniti vengono collegate automaticamente nello scheletro di applicazione generato.

Convenzione di denominazione

I controlli standard seguono una convenzione di denominazione semplice che è consigliabile utilizzare se possibile.La maggior parte dei controlli standard si trovano in posizioni standard nella barra dei menu di un'applicazione.Il nome simbolico di comando inizia con “ID_„ seguito dal nome standard del menu di scelta rapida, seguito dal nome della voce di menu.Il nome simbolico è in lettere maiuscole con le Word-interruzioni di sottolineatura.Per i controlli che non dispongono standard la voce di menu denominazione, un nome di comando logico è avviare definito con “ID_„ (ad esempio, ID_NEXT_PANE).

È possibile utilizzare il prefisso “ID_„ per indicare i controlli progettati per essere associati alle voci di menu, ai pulsanti della barra degli strumenti, o ad altri oggetti dell'interfaccia utente del comando.I gestori comandi che gestiscono i controlli “di ID_„ devono utilizzare ON_COMMAND e i meccanismi di ON_UPDATE_COMMAND_UI di MFC nell'architettura.

È consigliabile utilizzare il prefisso standard “IDM_„ per le voci di menu che non seguono l'architettura di comando e non necessitano di codice menu-specifico di attivarli e disabilitare.Naturalmente il numero di controlli specifici del menu deve essere limitato da seguire il comando MFC che l'architettura non solo dei gestori comandi più importanti poiché funzioneranno con le barre degli strumenti) ma che rende il codice del gestore comando riutilizzabile.

Intervalli di ID

Fare riferimento in alternativa a nota tecnica 20 per ulteriori informazioni sull'utilizzo degli intervalli di ID in MFC.

I controlli standard MFC rientrano nell'intervallo 0xE000 a 0xEFFF.Non utilizzare in alternativa ai valori specifici di questi ID poiché sono soggette a modifiche nelle versioni future della raccolta.

L'applicazione deve definire i relativi controlli nell'intervallo 0x8000 a 0xDFFF.

ID di comando standard

Per ogni ID di comando, esiste una stringa di richiesta standard di riga del messaggio che si trova nel file PROMPTS.RC.ID stringa per tale richiesta di menu deve essere lo stesso di per l'identificazione di comando

  • ID_FILE_NEW crea un nuovo/svuotato il documento.

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CWinApp::OnFileNew implementa questo comando in modo diverso a seconda del numero dei modelli di documento nell'applicazione.Se c " è solo un CDocTemplate, CWinApp::OnFileNew creerà un nuovo documento di quel tipo e la classe di visualizzazione corretta e frame.

    Se c " è più un CDocTemplate, CWinApp::OnFileNew richiederà all'utente una finestra di dialogo (AFX_IDD_NEWTYPEDLG) che li possibile selezionare il tipo di documento da utilizzare.CDocTemplate selezionato viene utilizzato per creare il documento.

    Una personalizzazione più comune di ID_FILE_NEW è fornire una scelta diverso e più grafica dei tipi di documento.In questo caso è possibile implementare un CMyApp::OnFileNew e inserirlo nella mappa messaggi alternativa di CWinApp::OnFileNew.Non è necessario chiamare l'implementazione della classe base.

    Un'altra personalizzazione comune di ID_FILE_NEW è fornire a un comando separato per creare un documento di ogni tipo.In questo caso è necessario definire nuovi ID di comando, ad esempio ID_FILE_NEW_CHART e ID_FILE_NEW_SHEET.

  • ID_FILE_OPEN apre un documento esistente.

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CWinApp::OnFileOpen dispone di un'implementazione molto semplice per chiamare CWinApp::DoPromptFileName seguito da CWinApp::OpenDocumentFile con il file o il nome del percorso del file da aprire.L'implementazione DoPromptFileName della routine CWinApp richiamare la finestra di dialogo e riempie standard di FileOpen con le estensioni di file ottenute dai modelli di documento corrente.

    Una personalizzazione più comune di ID_FILE_OPEN è la personalizzazione della finestra di dialogo di FileOpen o di aggiungere filtri di file aggiuntivi.La modalità consigliata per personalizzare questo consente di sostituire l'implementazione predefinita con la propria finestra di dialogo di FileOpen e la chiamata CWinApp::OpenDocumentFile con il file o il nome del percorso del documento.Non è necessario chiamare la classe base.

  • ID_FILE_CLOSE chiude attualmente il documento aperto.

    CDocument::OnFileClose chiama CDocument::SaveModified richiedere all'utente di salvare il documento se è stato modificato e quindi chiama OnCloseDocument.Tutta la logica di chiusura, inclusi eliminare il documento, viene effettuata nella routine di OnCloseDocument .

    [!NOTA]

    ID_FILE_CLOSE agisce in modo diverso da un messaggio di WM_CLOSE o da un comando di sistema di SC_CLOSE inviato alla finestra cornice dei documenti.Chiudere una finestra chiudere il documento solo se questa è l'ultima finestra cornice del documento.Chiudere il documento con ID_FILE_CLOSE non solo chiudere il documento ma chiusa in tutte le applicazioni utilizzano che illustrano il documento.

  • ID_FILE_SAVE salva il documento corrente.

    L'implementazione utilizza un helper CDocument::DoSave di routine utilizzato sia per OnFileSave che OnFileSaveAs.Se si salva un documento di cui non è stato salvato prima ovvero non si dispone di un nome di percorso, come nel caso di FileNew) o di cui è stato letto da un documento di sola lettura, la logica di OnFileSave interviene del comando di ID_FILE_SAVE_AS e chiede all'utente di immettere un nuovo nome file.Effettivo processo di aprire il file e del salvataggio viene eseguito con la funzione virtuale OnSaveDocument.

    Esistono due motivi comuni personalizzare ID_FILE_SAVE.Per i documenti che non salvataggio, è sufficiente rimuovere le voci di menu e pulsanti della barra degli strumenti di ID_FILE_SAVE dall'interfaccia utente.Assicurarsi inoltre che mai modificato il documento (ovvero non chiama mai CDocument::SetModifiedFlag) e il framework non vengono mai il documento venga salvato.Per i documenti che il salvataggio in un percorso diverso da quello di un file su disco, definire un nuovo comando per tale operazione.

    Nel caso di COleServerDoc, ID_FILE_SAVE viene utilizzato sia di salvataggio del file (per i documenti normali) che l'aggiornamento del file (per i documenti incorporati).

    Se i dati del documento vengono archiviati in singoli file su disco, ma non si desidera utilizzare CDocument predefinito serializzate l'implementazione, è necessario eseguire l'override CDocument::OnSaveDocument anziché OnFileSave.

  • ID_FILE_SAVE_AS salva il documento corrente con un altro nome.

    l'implementazione di CDocument::OnFileSaveAs utilizza la stessa routine di supporto di CDocument::DoSave di OnFileSave.Il comando di OnFileSaveAs viene gestito come ID_FILE_SAVE se i documenti non hanno nome file prima del salvataggio.COleServerDoc::OnFileSaveAs implementa la logica per salvare un file di dati di documento normale o per salvare un documento server che rappresenta un oggetto OLE incorporato in un'altra applicazione come file separato.

    Se si personalizza la logica di ID_FILE_SAVE, probabile che si desideri personalizzare ID_FILE_SAVE_AS in modo simile o “l'operazione di salvataggio come„ impossibile applicare al documento.È possibile rimuovere la voce di menu sulla barra dei menu se non è necessaria.

  • ID_FILE_SAVE_COPY_AS salva un documento corrente della copia sotto il nuovo nome.

    L'implementazione di COleServerDoc::OnFileSaveCopyAs è molto simile a CDocument::OnFileSaveAs, ad eccezione del fatto che l'oggetto documento non è “connesso„ al file sottostante al salvataggio.Ovvero se il documento in memoria “è stato modificato„ prima del salvataggio, ancora “vengano modificati„.Inoltre, questo comando non influisce sul nome del percorso o sul titolo archiviato nel documento.

  • ID_FILE_UPDATE notifica al contenitore per salvare un documento incorporato.

    Di COleServerDoc::OnUpdateDocument di implementazione i notifiies semplicemente il contenitore che l'incorporamento deve essere salvato.Il contenitore chiama quindi OLE appropriato API per salvare l'oggetto incorporato.

  • ID_FILE_PAGE_SETUP richiama una finestra di dialogo specifica dell'applicazione impostazione/layout di pagina.

    Attualmente non esiste standard per questa finestra di dialogo e il framework non dispone di implementazione predefinita di questo comando.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • Richiamo di ID_FILE_PRINT_SETUP la finestra di dialogo standard di installazione di stampa.

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    Questo comando richiama la finestra di dialogo standard di impostazione di stampa che consente di personalizzare le impostazioni di stampa e della stampante 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 dispone di un'implementazione molto semplice che crea un oggetto di CPrintDialog e che chiama la funzione di implementazione di CWinApp::DoPrintDialog .Ciò consente di impostare il valore della stampante predefinita dell'applicazione.

    La necessità comune di personalizzare questo comando è di consentire le impostazioni della stampante di per-documento, che devono essere archiviate con il documento una volta salvato.A tale scopo è necessario aggiungere un gestore della mappa messaggi nella classe di CDocument che crea un oggetto di CPrintDialog , viene inizializzato con gli attributi appropriati della stampante (in genere hDevMode e hDevNames), chiamate CPrintDialog::DoModal, e salvare le impostazioni della stampante modificate.Per un'implementazione affidabile, è necessario esaminare l'implementazione di CWinApp::DoPrintDialog per rilevare gli errori e CWinApp::UpdatePrinterSelection per gestire le impostazioni predefinite accettabili e delle modifiche a livello di sistema della stampante di verifica.

  • Stampa standard di ID_FILE_PRINT del documento corrente

    [!NOTA]

    È necessario connettersi questo al CViewalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    Questo comando stampa il documento corrente, o più correttamente, viene avviato il processo di stampa, che include richiamare la finestra di dialogo e l'esecuzione di stampa standard del motore di stampa.

    CView::OnFilePrint implementa questo comando e il ciclo principale di stampa.Chiama CView::OnPreparePrinting virtuale alla richiesta dell'utente con la finestra di dialogo di stampa.Il controllo del controller di dominio di output per passare alla stampante, richiamare la finestra di dialogo dello stato di avanzamento di stampa (AFX_IDD_PRINTDLG) e invia il carattere di escape di StartDoc alla stampante.CView::OnFilePrint contiene anche il ciclo orientato alla pagina principale di stampa.Per ogni pagina, chiama CView::OnPrepareDC virtuale seguito da un carattere di escape di StartPage e da chiamare CView::OnPrint virtuale per la pagina.Una volta completato, CView::OnEndPrinting virtuale viene chiamato e la finestra di dialogo dello stato di avanzamento di stampa è chiusa.

    L'architettura di stampa MFC è progettata per associare in molti modi diversi per la stampa e anteprima di stampa.In genere si noterà che le varie funzioni sottoponibili a override di CView appropriate per tutte le attività a orientate a pagina di stampa.Solo nel caso di un'applicazione che utilizza la stampante non di pagina è orientato l'output, se si cerca la necessità di sostituire l'implementazione di ID_FILE_PRINT .

  • ID_FILE_PRINT_PREVIEW entrano in modalità anteprima di stampa del documento corrente.

    [!NOTA]

    È necessario connettersi questo al CViewalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CView::OnFilePrintPreview inizia la modalità anteprima di stampa chiamando la funzione di supporto documentata CView::DoPrintPreview.CView::DoPrintPreview dal motore principale del ciclo di anteprima di stampa, esattamente come OnFilePrint dal motore principale del ciclo di stampa.

    L'operazione di anteprima di stampa può essere personalizzata in diversi modi passaggio di parametri diversi a DoPrintPreview.Fare riferimento in alternativa a nota tecnica 30, che vengono illustrati alcuni dei dettagli dell'anteprima di stampa e come personalizzarlo.

  • Intervallo diID_FILE_MRU_FILE1…**FILE16   **Agli ID di comando per il file utilizzato più di recente list.

    CWinApp::OnUpdateRecentFileMenu è un gestore dell'interfaccia utente del comando di aggiornamento che è uno degli scopi più avanzati del meccanismo di ON_UPDATE_COMMAND_UI .Nella risorsa menu, è sufficiente definire una sola voce di menu con ID ID_FILE_MRU_FILE1.Che la voce di menu rimane inizialmente disabilitata.

    Come elenco utilizzati di recente aumenta, più voci di menu vengono aggiunti all'elenco.Le impostazioni predefinite di implementazione di CWinApp standard al limite standard dei quattro file utilizzati di recente.È possibile modificare l'impostazione predefinita chiamando CWinApp::LoadStdProfileSettings con un valore più grande o valore più piccolo.L'elenco utilizzati di recente viene memorizzato nel file di .INI dell'applicazione.L'elenco viene caricato nella funzione di InitInstance dell'applicazione se si chiama LoadStdProfileSettingse salvato alla chiusura dell'applicazione.Il gestore dell'interfaccia utente del comando di aggiornamento utilizzati di recente anche convertirà i percorsi assoluti ai percorsi relativi di visualizzazione nel menu File.

    CWinApp::OnOpenRecentFile è il gestore di ON_COMMAND che esegue effettivamente il comando.Ottiene semplicemente il nome file dall'elenco utilizzati di recente e chiama CWinApp::OpenDocumentFile, che esegue tutte le operazioni di aprire il file e di aggiornare l'elenco utilizzati di recente.

    La personalizzazione del gestore comando non è consigliato.

  • ID_EDIT_CLEAR annullata la selezione corrente

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando utilizzando CEdit::Clear.Il comando è disabilitato se non c " è selezione corrente.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_CLEAR_ALL rimuovere l'intero documento.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comandoVedere a MFC l'implementazione dell'esercitazione di SCRIBBLE di esempio per un esempio.

  • ID_EDIT_COPY copia la selezione corrente negli Appunti.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, che copia il testo selezionato negli Appunti come CF_TEXT utilizzando CEdit::Copy.Il comando è disabilitato se non c " è selezione corrente.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_CUT taglia la selezione corrente negli Appunti.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, che consente di tagliare il testo selezionato negli Appunti come CF_TEXT utilizzando CEdit::Cut.Il comando è disabilitato se non c " è selezione corrente.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_FIND avviare l'operazione di ricerca, richiamare la finestra di dialogo non modale di ricerca.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, che chiama la funzione di supporto OnEditFindReplace di implementazione per utilizzare e archiviare il comando trova precedente/impostazioni di sostituzione nelle variabili private di implementazione.La classe di CFindReplaceDialog viene utilizzato per mantenere la finestra di dialogo non modale per richiedere all'utente.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_PASTE inserisce il contenuto corrente degli Appunti.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, la copia dei dati degli Appunti correnti che sostituiscono il testo selezionato tramite CEdit::Paste.Il comando è disabilitato se non c " è CF_TEXT negli Appunti.

    COleClientDoc fornisce solo a un gestore dell'interfaccia utente del comando di aggiornamento per questo comando.Se gli Appunti non contengono un elemento OLE/oggetto integrabili, il comando sarà disabilitato.È responsabile della scrittura di un gestore per l'effettivo comando venga effettivo incollare.Se l'applicazione OLE inoltre possibile incollare altri formati, è necessario fornire il proprio gestore dell'interfaccia utente del comando di aggiornamento nel punto di vista o documento (ovvero in prima di COleClientDoc nel routing della destinazione comando).

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

    Per sostituire l'implementazione OLE standard, utilizzare COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK inserisce un collegamento dal contenuto corrente degli Appunti.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    COleDocument fornisce solo a un gestore dell'interfaccia utente del comando di aggiornamento per questo comando.Se gli Appunti non contengono l'elemento OLE/oggetto collegabili, il comando sarà disabilitato.È responsabile della scrittura di un gestore per l'effettivo comando venga effettivo incollare.Se l'applicazione OLE inoltre possibile incollare altri formati, è necessario fornire il proprio gestore dell'interfaccia utente del comando di aggiornamento nel punto di vista o documento (ovvero in prima di COleDocument nel routing della destinazione comando).

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

    Per sostituire l'implementazione OLE standard, utilizzare COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL inserisce il contenuto corrente degli Appunti con le opzioni.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.MFC non offre questa finestra di dialogo.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_REPEAT ripete all'ultima operazione.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando ripetere l'ultima operazione di ricerca.Le variabili private di implementazione per l'ultimo ricerca vengono utilizzate.Il comando è disabilitato se una ricerca non può essere eseguito.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_REPLACE inizia l'operazione di sostituzione, richiamare la finestra di dialogo di sostituzione non modale.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, che chiama la funzione di supporto OnEditFindReplace di implementazione per utilizzare e archiviare il comando trova precedente/impostazioni di sostituzione nelle variabili private di implementazione.La classe di CFindReplaceDialog viene utilizzato per mantenere la finestra di dialogo non modale che richiede all'utente.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_SELECT_ALL selezionare l'intero documento.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, che seleziona tutto il testo nel documento.Il comando è disabilitato se non c " è il testo da selezionare.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_UNDO viene annullata l'ultima operazione.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    CEditView fornisce un'implementazione di questo comando, utilizzando CEdit::Undo.Il comando è disabilitato se CEdit::CanUndo restituisce FALSE.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_EDIT_REDO ripete all'ultima operazione.

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per ogni CViewclasse derivata da.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_WINDOW_NEW visualizzata un'altra finestra nel documento attivo.

    CMDIFrameWnd::OnWindowNew implementa questa caratteristica efficace tramite il modello di documento del documento corrente per creare un altro frame contenente un'altra visualizzazione del documento corrente.

    Come la maggior parte dei comandi del menu finestra MDI (MDI), il comando è disabilitato se non c " è finestra figlio MDI.

    La personalizzazione del gestore comando non è consigliato.Se si desidera fornire un comando che crea le visualizzazioni aggiuntive o le applicazioni utilizzano, probabilmente sarà più ricco inventando un comando.È possibile usare il codice da CMDIFrameWnd::OnWindowNew e modificarlo nel frame specifico e classi di visualizzazione del gradimento.

  • ID_WINDOW_ARRANGE dispone delle icone nella parte inferiore di una finestra MDI.

    CMDIFrameWnd implementa questo comando standard MDI in una funzione di supporto OnMDIWindowCmddi implementazione.Tale helper esegue il mapping degli ID di comandi per i messaggi delle finestre MDI e quindi possibile condividere quantità di codice.

    Come la maggior parte dei comandi del menu finestra MDI, il comando è disabilitato se non c " è finestra figlio MDI.

    La personalizzazione del gestore comando non è consigliato.

  • ID_WINDOW_CASCADE sovrappone alle finestre in modo che si sovrappongono.

    CMDIFrameWnd implementa questo comando standard MDI in una funzione di supporto OnMDIWindowCmddi implementazione.Tale helper esegue il mapping degli ID di comandi per i messaggi delle finestre MDI e quindi possibile condividere quantità di codice.

    Come la maggior parte dei comandi del menu finestra MDI, il comando è disabilitato se non c " è finestra figlio MDI.

    La personalizzazione del gestore comando non è consigliato.

  • Affiancare le finestre di ID_WINDOW_TILE_HORZ orizzontalmente.

    Questo comando è implementato in CMDIFrameWnd come ID_WINDOW_CASCADE, a meno che un messaggio diverso delle finestre MDI verrà utilizzata per l'operazione.

    È necessario selezionare l'orientamento predefinito della sezione per l'applicazione.Questo è possibile modificare l'ID della voce di menu “di sezione della finestra a ID_WINDOW_TILE_HORZ o a ID_WINDOW_TILE_VERT.

  • Affiancare le finestre di ID_WINDOW_TILE_VERT verticalmente.

    Questo comando è implementato in CMDIFrameWnd come ID_WINDOW_CASCADE, a meno che un messaggio diverso delle finestre MDI verrà utilizzata per l'operazione.

    È necessario selezionare l'orientamento predefinito della sezione per l'applicazione.Questo è possibile modificare l'ID della voce di menu “di sezione della finestra a ID_WINDOW_TILE_HORZ o a ID_WINDOW_TILE_VERT.

  • Interfaccia di tastiera di ID_WINDOW_SPLIT al separatore.

    CView gestisce questo comando per l'implementazione di CSplitterWnd .Se la visualizzazione fa parte di una finestra con separatore, questo comando delegherà la funzione CSplitterWnd::DoKeyboardSplitdi implementazione.Ciò per spostarsi sulla barra di divisione in una modalità che consente agli utenti della tastiera a divisione o a unsplit una finestra con separatore.

    Questo comando è disabilitato se la visualizzazione non è in una barra di divisione.

    La personalizzazione del gestore comando non è consigliato.

  • ID_APP_ABOUT richiama sulla finestra di dialogo.

    Non esiste alcuna implementazione standard per un'applicazione sulla casella.L'applicazione AppWizard-creata predefinita creerà una classe personalizzata della finestra di dialogo per l'applicazione e la utilizzerà come la casella su.AppWizard si scriverà il gestore comando semplice che gestisce questo comando e richiama la finestra di dialogo.

    Si distribuirà quasi sempre questo comando.

  • Uscita di ID_APP_EXIT l'applicazione.

    CWinApp::OnAppExit gestisce questo comando inviando un messaggio di WM_CLOSE alla finestra principale dell'applicazione.L'arresto standard dell'applicazione (obbligatorio per i file modificati e così via) è gestita dall'implementazione di CFrameWnd .

    La personalizzazione del gestore comando non è consigliato.Eseguendo l'override di CWinApp::SaveAllModified o CFrameWnd che consente di chiudere la logica è consigliato.

    Se si decide di implementare questo comando, è consigliabile utilizzare questo ID. di comando

  • ID_HELP_INDEX vengono elencati gli argomenti della Guida dal file di .HLP.

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CWinApp::OnHelpIndex gestisce questo comando banalmente chiamando CWinApp::WinHelp.

    La personalizzazione del gestore comando non è consigliato.

  • Le visualizzazioni di ID_HELP_USING fornite informazioni su come utilizzare la guida.

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CWinApp::OnHelpUsing gestisce questo comando banalmente chiamando CWinApp::WinHelp.

    La personalizzazione del gestore comando non è consigliato.

  • ID_CONTEXT_HELP attivata la modalità guida SHIFT-F1.

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CWinApp::OnContextHelp gestisce questo comando impostandone il cursore di sistema della guida, fornendo un ciclo modale e l'attesa l'utente per selezionare una finestra per visualizzare le informazioni della guida su.Fare riferimento in alternativa a nota tecnica 28 per ulteriori informazioni sull'implementazione della guida MFC.

    La personalizzazione del gestore comando non è consigliato.

  • ID_HELP vengono fornite per il contesto corrente

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    CWinApp::OnHelp gestisce questo comando ottenendo il corretto contesto del contesto dell'applicazione corrente.In questo modo la Guida semplice, guida sulle finestre di messaggio e così via.Fare riferimento in alternativa a nota tecnica 28 per ulteriori informazioni sull'implementazione della guida MFC.

    La personalizzazione del gestore comando non è consigliato.

  • Guida di impostazione predefinita le visualizzazioni di ID_DEFAULT_HELP per il contesto

    [!NOTA]

    È necessario connettersi questo al CWinAppalla mappa messaggi derivata della classe per abilitare questa funzionalità.

    Questo comando in genere mappato a CWinApp::OnHelpIndex.

    Un gestore comando diverso è possibile fornire se una distinzione tra la guida predefinita e l'indice della guida è desiderata.

  • ID_NEXT_PANE passa al riquadro successivo

    CView gestisce questo comando per l'implementazione di CSplitterWnd .Se la visualizzazione fa parte di una finestra con separatore, questo comando delegherà la funzione CSplitterWnd::OnNextPaneCmddi implementazione.Si sposterà la visualizzazione attiva nel riquadro successivo nella barra di divisione.

    Questo comando è disabilitato se la visualizzazione non è in una barra di divisione o non esiste riquadro successivo da passare a.

    La personalizzazione del gestore comando non è consigliato.

  • ID_PREV_PANE passa al riquadro precedente

    CView gestisce questo comando per l'implementazione di CSplitterWnd .Se la visualizzazione fa parte di una finestra con separatore, questo comando delegherà la funzione CSplitterWnd::OnNextPaneCmddi implementazione.Si sposterà la visualizzazione attiva nel riquadro precedente nel separatore.

    Questo comando è disabilitato se la visualizzazione non è in una barra di divisione o non esiste riquadro precedente da passare a.

    La personalizzazione del gestore comando non è consigliato.

  • ID_OLE_INSERT_NEW inserisce un nuovo oggetto OLE

    Attualmente non esiste alcuna implementazione standard per questo comando.È necessario implementare questo per il CViewclasse derivata da per inserire un nuovo elemento OLE/oggetto alla selezione corrente.

    Tutte le applicazioni client OLE devono implementare questo comando.AppWizard, con l'opzione OLE, ne verrà creato uno scheletro di implementazioni di OnInsertObject nella classe di visualizzazione che è necessario completare.

    Vedere l'esempio di OCLIENT esempio OLE MFC per l'implementazione completa del comando.

  • ID_OLE_EDIT_LINKS modifica i collegamenti OLE

    COleDocument gestisce questo comando utilizzando la fornito dall'implementazione della finestra di dialogo dei collegamenti OLE standard.L'implementazione di questa finestra di dialogo è accessibile attraverso la classe di COleLinksDialog .Se il documento corrente non contiene alcun collegamenti, il comando è disabilitato.

    La personalizzazione del gestore comando non è consigliato.

  • ULTIMO di ID_OLE_VERB_FIRST… un intervallo di ID per i verbi OLE

    COleDocument utilizza questo intervallo di ID di comando per i verbi supportati dall'elemento OLE/oggetto attualmente selezionato.Deve trattarsi di un intervallo poiché un elemento OLE/tipo di oggetto specificato può supportare zero o più verbi personalizzati.Nel menu dell'applicazione, è necessario avere una voce di menu con l'ID di ID_OLE_VERB_FIRST.Quando il programma viene eseguito, il menu verrà aggiornato con la descrizione appropriata del verbo del menu (o il menu di scelta rapida a molti verbi).La gestione del menu OLE è gestita da AfxOleSetEditMenu, effettuata nel gestore dell'interfaccia utente del comando di aggiornamento per questo comando.

    Non esistono gestori comandi espliciti per gestire ogni ID comando in questo intervallo.COleDocument::OnCmdMsg ignorato per intercettare tutti gli ID di comando in questo intervallo, ad trasformarli numeri in base zero del verbo e per avviare il server per il verbo (utilizzando COleClientItem::DoVerb).

    La personalizzazione o un altro utilizzo di questo intervallo di ID di comando non è consigliato.

  • ID_VIEW_TOOLBAR passa la barra degli strumenti e chiuderlo

    CFrameWnd gestisce questo comando e il gestore dell'interfaccia utente di aggiornamento-comando passare lo stato visibile della barra degli strumenti.La barra degli strumenti deve essere una finestra figlio del frame alla finestra figlio ID di AFX_IDW_TOOLBAR.Il gestore comando effettivamente passa la visibilità della barra degli strumenti.CFrameWnd::RecalcLayout viene utilizzato per ridisegnare la finestra cornice con la barra degli strumenti nel nuovo stato.Il gestore dell'interfaccia utente di aggiornamento-comando controlla la voce di menu quando la barra degli strumenti è visibile.

    La personalizzazione del gestore comando non è consigliato.Se si desidera aggiungere barre degli strumenti aggiuntive, sarà necessario duplicare e modificare il gestore comando e il gestore dell'interfaccia utente di aggiornamento-comando per questo comando.

  • ID_VIEW_STATUS_BAR passa la barra di stato e chiuderlo

    Questo comando è implementato in CFrameWnd come ID_VIEW_TOOLBAR, a meno che una finestra figlio diverso ID (AFX_IDW_STATUS_BAR) venga utilizzata.

Gestori comandi Solo aggiornamento

Diversi ID di comando standard vengono utilizzati come indicatori di barre di stato.Questi utilizzano la stessa interfaccia utente di aggiornamento-comando che gestisce il meccanismo per visualizzare lo stato di visualizzazione corrente durante il periodo di inattività di applicazione.Poiché non possono essere selezionati dall'utente (ovvero non è possibile inserire un riquadro della barra di stato), non è opportuno utilizzare un gestore di ON_COMMAND per questi ID di comando.

  • ID_INDICATOR_CAPS : Indicatore di l blocco di FINE.

  • ID_INDICATOR_NUM : Indicatore di l blocco NUM.

  • ID_INDICATOR_SCRL : Indicatore di l blocco di SCRL.

  • ID_INDICATOR_KANA : Indicatore di l blocco di KANA (applicabile solo ai sistemi giapponese).

Tutti e tre i vengono implementati in CFrameWnd::OnUpdateKeyIndicator, un helper di implementazione che utilizza l'ID di comando per eseguire il tasto virtuale appropriata.Un'implementazione comune abilita o disabilita (per i riquadri dello stato disabilitato = alcun testo) l'oggetto di CCmdUI a seconda che la chiave virtuale appropriata attualmente è bloccata.

La personalizzazione del gestore comando non è consigliato.

  • ID_INDICATOR_EXT : EXTè terminata indicatore selezionato.

  • Indicatore della schermata diID_INDICATOR_OVR : OVeR.

  • ID_INDICATOR_REC : RECche ording indicatore.

Attualmente non esiste alcuna implementazione standard per questi indicatori.

Se si decide di implementare questi indicatori, è consigliabile utilizzare questo indicatore ID e gestire l'ordine degli indicatori nella barra di stato ovvero in quest'ordine: JOIN, FINE, NUM, SCRL, OVR, REC).

Vedere anche

Altre risorse

Note tecniche del numero

Note tecniche per categoria