Procedura: Gestire i simboli
Quando si crea una nuova risorsa o un nuovo oggetto risorsa, l'ambiente di sviluppo assegna un nome di simbolo predefinito, IDD_DIALOG1
ad esempio . È possibile usare il Finestra Proprietà per modificare il nome del simbolo predefinito o per modificare il nome di qualsiasi simbolo già associato a una risorsa.
Per i simboli associati a una singola risorsa, è anche possibile usare la finestra Proprietà per modificare il valore del simbolo. È possibile usare la finestra di dialogo Simboli risorsa per modificare il valore dei simboli non attualmente assegnati a una risorsa.
In genere tutte le definizioni dei simboli vengono salvate in Resource.h
. Tuttavia, potrebbe essere necessario modificare il nome file di inclusione in modo da poter, ad esempio, usare più file di risorse nella stessa directory.
Nota
Se il progetto non contiene già un file RC, vedere Procedura: Creare risorse.
Restrizioni relative ai nomi dei simboli
I nomi dei simboli sono soggetti alle restrizioni riportate di seguito.
Tutti i simboli devono essere univoci nell'ambito dell'applicazione per evitare definizioni di simboli in conflitto nei file di intestazione.
I caratteri validi per il nome di un simbolo includono i caratteri maiuscoli e minuscoli dalla A alla Z, i numeri da 0 a 9 e i caratteri di sottolineatura ( _ ).
I nomi dei simboli non possono iniziare con un numero e sono limitati a 247 caratteri.
I nomi dei simboli non possono contenere spazi.
I nomi dei simboli non fanno distinzione tra maiuscole e minuscole, ma viene mantenuta la distinzione tra maiuscole e minuscole della prima definizione di simbolo.
Il file di intestazione che definisce i simboli viene usato sia dal compilatore e dall'editor di risorse sia da uno o più programmi C++ per fare riferimento alle risorse definite in un file di risorse. Se due nomi di simbolo differiscono solo nell'utilizzo di lettere maiuscole e minuscole, nel programma C++ verranno visualizzati due simboli separati, mentre nel compilatore e nell'editor di risorse verranno visualizzati entrambi i nomi come se facessero riferimento a un unico simbolo.
Nota
Se non si segue lo schema dei nomi dei simboli standard (ID*_[parola chiave]) descritto di seguito e il nome del simbolo corrisponde a una parola chiave nota al compilatore di script di risorse, il tentativo di compilare il file di script di risorse genererà una generazione di errori apparentemente casuale che è difficile da diagnosticare. Per evitare questo problema, è necessario attenersi allo schema di denominazione standard.
I nomi dei simboli dispongono di prefissi descrittivi che indicano il tipo di risorsa o di oggetto che rappresentano. Tali prefissi descrittivi iniziano con l'ID di combinazione testo. La libreria Microsoft Foundation Class (MFC) usa le convenzioni di denominazione dei simboli illustrate nella tabella seguente:
Categoria | Prefisso | Utilizzo |
---|---|---|
Risorse | IDR_, IDD_, IDC_, IDI_, IDB_ | Acceleratore o menu (e risorse associate o personalizzate), finestra di dialogo, cursore, icona, bitmap |
Voci di menu | ID_ | Voce di menu |
Comandi | ID_ | Comando |
Controlli e finestra figlio | IDC_ | Controllo |
Stringhe | IDS_ | Stringa nella tabella di stringhe |
MFC | AFX_ | Riservati per simboli MFC predefiniti |
Per modificare un nome di simbolo (ID)
In Visualizzazione risorse selezionare la risorsa.
Nella finestra Proprietà digitare un nuovo nome di simbolo o selezionare dall'elenco dei simboli esistenti nella casella ID .
Se si digita un nuovo nome di simbolo, viene assegnato automaticamente un valore.
Nota
È possibile usare la finestra di dialogo Simboli risorsa per modificare i nomi dei simboli non attualmente assegnati a una risorsa.
Restrizioni relative ai valori dei simboli
Un valore simbolo può essere qualsiasi numero intero espresso nel modo normale per #define
le direttive del preprocessore. Di seguito sono riportati alcuni esempi di valori di simboli:
18
4001
0x0012
-3456
I valori dei simboli per le risorse, ad esempio acceleratori, bitmap, cursori, finestre di dialogo, icone, menu, tabelle di stringhe e informazioni sulla versione, devono essere numeri decimali compresi tra 0 e 32.767, ma non possono essere esadecimali. I valori dei simboli per gli elementi delle risorse, quali i controlli delle finestre di dialogo o le singole stringhe nella tabella di stringhe, possono essere compresi tra 0 e 65.534 oppure tra -32.768 e 32.767. Per altre informazioni sugli intervalli di numeri, vedere TN023: Risorse MFC standard.
I simboli delle risorse sono numeri a 16 bit. È possibile immetterli come con segno o senza segno, ma vengono usati internamente come numeri interi senza segno, quindi i numeri negativi verranno cast al valore positivo corrispondente.
Alcune limitazioni dei valori dei simboli sono:
L'ambiente di sviluppo Visual Studio e MFC usano alcuni intervalli di numeri per scopi specifici. Tutti i numeri con il bit più significativo impostato (da -32.768 a -1 oppure da 32.768 a 65.534, a seconda del segno) sono riservati da MFC.
Non è possibile definire un valore di simbolo usando altre stringhe di simboli. Ad esempio, la definizione di simbolo seguente non è supportata:
#define IDC_MYEDIT IDC_OTHEREDIT //not supported
Non è possibile usare macro del preprocessore con argomenti come definizioni di valore. L'esempio seguente non è un'espressione valida indipendentemente da ciò che
ID
restituisce in fase di compilazione:#define IDD_ABOUT ID(7) //not supported
L'applicazione potrebbe disporre di un file esistente contenente simboli definiti con espressioni.
Per modificare un valore di simbolo
In Visualizzazione risorse selezionare la risorsa.
Nella finestra Proprietà digitare il nome del simbolo seguito da un segno di uguale e un numero intero nella casella ID, ad esempio:
IDC_EDITNAME=5100
Il nuovo valore viene archiviato nel file di intestazione simboli la volta successiva che si salva il progetto. Solo il nome del simbolo rimane visibile nella casella ID e il segno di uguale e il valore non vengono visualizzati dopo la convalida.
Modificare o eliminare simboli
Nella finestra di dialogo Simboli risorsa è possibile modificare o eliminare simboli esistenti non già assegnati a una risorsa o a un oggetto.
Per modificare un simbolo non assegnato
Nella casella Nome selezionare il simbolo non assegnato e scegliere Cambia.
Modificare il nome o il valore del simbolo nelle caselle fornite nella finestra di dialogo Cambia simbolo .
Nota
Per modificare un simbolo assegnato a una risorsa o a un oggetto, è necessario usare l'editor di risorse o la finestra Proprietà .
Per eliminare un simbolo non assegnato (non usato)
Nella finestra di dialogo Simboli risorsa selezionare il simbolo da eliminare e scegliere Elimina.
Nota
Prima di eliminare un simbolo inutilizzato in un file di risorse, assicurarsi che non venga usato altrove nel programma o dai file di risorse inclusi in fase di compilazione.
Includi simboli
La prima volta che l'ambiente di sviluppo legge un file di risorse creato da un'altra applicazione, contrassegna tutto, inclusi i file di intestazione, come di sola lettura. Anche se è possibile usare la finestra di dialogo Include risorse per aggiungere altri file di intestazione dei simboli di sola lettura.
Un motivo per cui è possibile voler usare le definizioni dei simboli di sola lettura è per i file di simboli che si intende condividere tra più progetti.
Inoltre, è possibile usare file di simboli inclusi quando si dispone di risorse esistenti con le definizioni dei simboli che usano espressioni anziché semplici numeri interi per definire il valore di simbolo. Ad esempio:
#define IDC_CONTROL1 2100
#define IDC_CONTROL2 (IDC_CONTROL1+1)
L'ambiente interpreterà correttamente questi simboli calcolati purché:
I simboli calcolati siano inseriti in un file di simboli di sola lettura.
Il file di risorse contenga risorse a cui sono già stati assegnati questi simboli calcolati.
È prevista un'espressione numerica.
Nota
Se è prevista una stringa o un'espressione numerica, l'espressione non è valutata.
Per includere simboli condivisi (di sola lettura) nel file di risorse
In Visualizzazione risorse fare clic con il pulsante destro del mouse sul file RC e scegliere Include risorse.
Nella casella Direttive di simboli di sola lettura usare la
#include
direttiva del compilatore per specificare il file in cui si desidera conservare i simboli di sola lettura.Non chiamare il file
Resource.h
perché è il nome file usato normalmente dal file di intestazione del simbolo principale.Nota
Il tipo specificato nella casella Direttive di simboli di sola lettura è incluso nel file di risorse esattamente durante la digitazione. Verificare che il tipo non contenga errori di ortografia o di sintassi.
Usare la casella Direttive dei simboli di sola lettura per includere solo i file con definizioni di simboli. Non includere definizioni di risorse. In caso contrario, le definizioni di risorse duplicate verranno create quando il file viene salvato.
Inserire i simboli nel file specificato.
I simboli nei file inclusi in questo modo vengono valutati ogni volta che si apre il file di risorse, ma non vengono sostituiti sul disco quando si salva il file.
Seleziona OK.
Per modificare il nome del file di intestazione simboli di risorsa
In Visualizzazione risorse fare clic con il pulsante destro del mouse sul file RC e scegliere Include risorse.
Nella casella File di intestazione simbolo digitare il nuovo nome per il file di inclusione.
Requisiti
App Win32
Vedi anche
Identificatori di risorsa (simboli)
Procedura: Creare simboli
ID simbolo predefiniti