TN020: ID denominazione e convenzioni di numerazione

Questa nota descrive l'ID di denominazione e la numerazione le convenzioni utilizzate da MFC 2.0 per le risorse, stringhe, comandi, controlli e finestre figlio.

Il problema

La denominazione di MFC ID e convenzioni di numerazione sono destinati a soddisfare i seguenti requisiti:

Panoramica del prefisso ID convenzione di denominazione

Ci sono diverse categorie o tipi di IDs in un'applicazione. La convenzione di denominazione dei MFC ID definisce diversi prefissi per tipi di diverse risorse.

MFC utilizza il prefisso "IDR _" per riferirsi a un ID di risorsa che si applica a più tipi di risorsa. Ad esempio, per una finestra determinato lasso, lo stesso valore di "IDR _" viene utilizzato per fare riferimento a una risorsa dal menu, acceleratore, string e icona tutti in una volta.

IDR _ Più tipi di risorsa (usato principalmente per i menu, tasti di scelta rapida).
IDD_ Per le risorse del modello di finestra di dialogo (ad esempio, IDD_DIALOG1).

IDC_

Per le risorse del cursore.

IDI_

Per risorse icona.

IDB_

Per le risorse Bitmap.

IDS_

Per le risorse di tipo stringa.


Notare che il valore IDS_ per una risorsa di tipo stringa è l'ID passato a LoadString. L'effettiva realizzazione di stringhe di stringa tabella risorse gruppi 16 insieme in un segmento.

All'interno di una risorsa di dialogo, ci seguono la convenzione di:

IDOK,IDCANCEL Per premere il pulsante standard IDs.
IDC_

Per altri controlli di dialogo.

Il prefisso "IDC_" è utilizzato anche per i cursori. Questo conflitto di denominazione non è di solito un problema dal momento che una tipica applicazione avrà qualche cursori e un gran numero di controlli di dialogo.

All'interno di una risorsa di Menu, ci seguono la convenzione di:

IDM Per le voci di menu non si utilizza l'architettura di comando MFC.
ID _

Per i comandi del menu elemento grazie all'architettura di comando MFC.

I comandi che seguono l'architettura di comando MFC devono avere un gestore di comandi ON_COMMAND e possono avere un gestore ON_UPDATE_COMMAND_UI . Se questi gestori di comandi seguono l'architettura di comando MFC, funzionerà correttamente se essi sono associati a una voce di menu, un pulsante della barra degli strumenti o un pulsante della barra di dialogo. La stessa ID _ è utilizzato anche per una stringa richiesta dal menu visualizzata nella barra dei messaggi del programma. La maggior parte delle voci di menu nella vostra applicazione dovrebbe seguire la convenzione di comando MFC. Tutti gli ID di comando standard (ad esempio, ID_FILE_NEW) seguono questa convenzione.

MFC utilizza anche "IDP" come una forma specializzata di stringhe (che è, invece di "IDS_"). Le stringhe con il prefisso "IDP" sono "prompt," che è, le stringhe utilizzate nelle finestre di messaggio. "IDP" stringhe possono contenere "% 1" e "% 2" come segnaposto di stringhe determinato dal programma. "IDP" stringhe di solito hanno gli argomenti della guida, mentre "IDS_" stringhe non. "IDP" stringhe sono sempre localizzate, mentre le stringhe "IDS_" possono o non possono essere localizzate.

La libreria MFC utilizza anche il prefisso "IDW_" come una forma specializzata di ID dei controlli (che è, invece di "IDC_"). Questi ID sono assegnati a finestre figlio come visualizzazioni e splitter dalle classi quadro. MFC implementazione IDs sono preceduti da "AFX_".

Panoramica della convenzione ID numerazione

Di seguito sono elencati gli intervalli validi per gli ID dei tipi specifici. Alcuni dei limiti sono limiti l'implementazione tecnica, mentre altri sono solo convenzioni per impedire il tuo ID di collisione con gli ID predefiniti di Windows o MFC implementazioni predefinite.

Si consiglia vivamente di che fare IDs non definiti all'esterno gli intervalli raccomandati. Anche se il limite inferiore di molti di questi intervalli è 1 (0 non viene utilizzato), convenzione comune inizia l'uso pratico di ID a 100 o 101.

Prefisso Tipo di risorsa Intervallo valido
IDR _ multiple 1 - > 0x6FFF
IDD_ modelli di dialogo 1 - > 0x6FFF
IDC_, IDI_, IDB_ cursori, icone, immagini bitmap 1 - > 0x6FFF
IDS_, IDP stringhe generale 1 - > 0x7FFF
ID _ comandi 0x8000 - > 0xDFFF
IDC_ controlli 8 - > 0xDFFF

Motivi per questi limiti di gamma:

&Note tecniche per numero |nbsp; Note tecniche per la categoria

Index