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