Condividi tramite


Routing dei comandi

La responsabilità di lavorare con i comandi è limitata all'esecuzione di connessioni di mapping dei messaggi tra i comandi e le relative funzioni del gestore, un'attività per cui si usa la Creazione guidata classe MFC. È anche necessario scrivere il codice per i gestori dei comandi.

I messaggi di Windows vengono in genere inviati alla finestra cornice principale, ma i messaggi di comando vengono quindi indirizzati ad altri oggetti. Il framework indirizza i comandi tramite una sequenza standard di oggetti di destinazione del comando, uno dei quali dovrebbe avere un gestore per il comando. Ogni oggetto di destinazione del comando controlla la mappa dei messaggi per verificare se è in grado di gestire il messaggio in arrivo.

Diverse classi di destinazione dei comandi controllano le proprie mappe dei messaggi in momenti diversi. In genere, una classe instrada il comando a determinati altri oggetti per dare loro la prima possibilità al comando. Se nessuno di questi oggetti gestisce il comando, la classe originale controlla la propria mappa messaggi. Quindi, se non è in grado di fornire un gestore da sé, può instradare il comando ad altri obiettivi di comando. La tabella Route comando standard seguente mostra come ognuna delle classi struttura questa sequenza. L'ordine generale in cui un target di comando instrada un comando è:

  1. All'oggetto comando-target figlio attualmente attivo.

  2. A se stesso.

  3. Verso altri obiettivi di comando.

Quanto è costoso questo meccanismo di routing Rispetto a ciò che il gestore esegue in risposta a un comando, il costo del routing è basso. Tenere presente che il framework genera comandi solo quando l'utente interagisce con un oggetto interfaccia utente.

Percorso dei comandi standard

Quando un oggetto di questo tipo riceve un comando . . . Offre a se stesso e ad altri oggetti di destinazione comando la possibilità di gestire il comando in questo ordine:
Finestra cornice MDI (CMDIFrameWnd) 1. Attivo CMDIChildWnd
2. Questa finestra cornice
3. Applicazione (CWinApp oggetto)
La finestra cornice del documento (CFrameWnd, CMDIChildWnd) 1. Visualizzazione attiva
2. Questa finestra cornice
3. Applicazione (CWinApp oggetto)
Visualizza 1. Questa visualizzazione
2. Documento allegato alla vista
Documento 1. Questo documento
2. Modello di documento allegato al documento
Finestra di dialogo 1. Questa finestra di dialogo
2. Finestra proprietaria della finestra di dialogo
3. Applicazione (CWinApp oggetto)

Dove le voci numerate nella seconda colonna della tabella precedente indicano altri oggetti, ad esempio un documento, vedere l'elemento corrispondente nella prima colonna. Ad esempio, quando leggi nella seconda colonna che la vista inoltra un comando al relativo documento, consulta la voce "Documento" nella prima colonna per seguire ulteriormente il routing.

Vedere anche

Modalità di chiamata di un gestore da parte del framework