TN022: Implementazione di comandi Standard

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.

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

Index