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_DIALOG1ad 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)

  1. In Visualizzazione risorse selezionare la risorsa.

  2. 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

  1. In Visualizzazione risorse selezionare la risorsa.

  2. 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

  1. Nella casella Nome selezionare il simbolo non assegnato e scegliere Cambia.

  2. 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

  1. In Visualizzazione risorse fare clic con il pulsante destro del mouse sul file RC e scegliere Include risorse.

  2. 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.hperché è 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.

  3. 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.

  4. Seleziona OK.

Per modificare il nome del file di intestazione simboli di risorsa

  1. In Visualizzazione risorse fare clic con il pulsante destro del mouse sul file RC e scegliere Include risorse.

  2. 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