Gewusst wie: Verwalten von Symbolen

Wenn Sie eine neue Ressource oder ein neues Ressourcenobjekt erstellen, weist die Entwicklungsumgebung ihm beispielsweise einen Standardsymbolnamen zu. IDD_DIALOG1 Sie können die Eigenschaftenfenster verwenden, um den Standardsymbolnamen zu ändern oder den Namen eines symbols zu ändern, das bereits einer Ressource zugeordnet ist.

Bei Symbolen, die einer einzelnen Ressource zugeordnet sind, können Sie auch das Eigenschaftenfenster verwenden, um den Symbolwert zu ändern. Sie können das Dialogfeld "Ressourcensymbole" verwenden, um den Wert von Symbolen zu ändern, die derzeit keiner Ressource zugeordnet sind.

Normalerweise werden alle Symboldefinitionen gespeichert.Resource.h Jedoch müssen Sie den Namen dieser Includedatei möglicherweise ändern, sodass Sie z. B. mit mehr als eine Ressourcendatei im selben Verzeichnis arbeiten können.

Hinweis

Wenn Ihr Projekt noch keine RC-Datei enthält, lesen Sie "How to: Create Resources".

Beschränkungen bei Symbolnamen

Die Einschränkungen für Symbolnamen lauten wie folgt:

  • Alle Symbole müssen innerhalb des Bereichs der Anwendung eindeutig sein, um widersprüchliche Symboldefinitionen in den Headerdateien zu verhindern.

  • Zu den gültigen Zeichen für einen Symbolnamen zählen A–Z, a–z, 0–9 und Unterstriche ( – ).

  • Symbolnamen können nicht mit einer Zahl beginnen und sind auf 247 Zeichen beschränkt.

  • Symbolnamen dürfen keine Leerzeichen enthalten.

  • Bei Symbolnamen wird die Groß-/Kleinschreibung nicht beachtet, die Groß-/Kleinschreibung der ersten Symboldefinition wird jedoch beibehalten.

    Die die Symbole definierende Headerdatei wird durch den Ressourcencompiler/Editor und durch das bzw. die C++Programm(e) verwendet, um auf in einer Ressourcendatei definierte Ressourcen zu verweisen. Bei zwei Symbolnamen, die sich nur in der Groß-/Kleinschreibung unterscheiden, erkennt das C++-Programm zwei getrennte Symbole, während der Ressourcencompiler/Editor beide Namen als ein einzelnes Symbol erkennt.

Hinweis

Wenn Sie dem unten beschriebenen Standardsymbolnamensschema (ID*_[Schlüsselwort (keyword)]) nicht folgen und ihr Symbolname mit einem Schlüsselwort (keyword) identisch ist, der dem Ressourcenskriptcompiler bekannt ist, führt der Versuch, die Ressourcenskriptdatei zu erstellen, zu einer scheinbar zufälligen Fehlergenerierung, die schwer zu diagnostizieren ist. Halten Sie sich an die standardmäßige Namensgebung, um dies zu verhindern.

Symbolnamen weisen beschreibende Präfixe auf, die die Art der Ressource oder des Objekts andeuten, die bzw. das sie repräsentieren. Diese beschreibenden Präfixe beginnen mit der Textkombinations-ID. Die Microsoft Foundation Class (MFC)-Bibliothek verwendet die in der folgenden Tabelle gezeigten Symbolbenennungskonventionen:

Kategorie Präfix Verwendung
Ressourcen IDR_, IDD_, IDC_, IDI_, IDB_ Schnellinfo oder Menü (und zugeordnete oder benutzerdefinierte Ressourcen), Dialogfeld, Cursor, Symbol, Bitmap
Menüelemente ID_ Menüoption
Befehle ID_ Get-Help
Steuerelemente und untergeordnete Fenster IDC_ Control
Zeichenfolgen IDS_ Zeichenfolge in der Zeichenfolgentabelle
MFC AFX_ Reserviert für vordefinierte MFC-Symbole

So ändern Sie einen Symbolnamen (ID)

  1. Wählen Sie in der Ressourcenansicht die Ressource aus.

  2. Geben Sie im Eigenschaftenfenster einen neuen Symbolnamen ein, oder wählen Sie aus der Liste der vorhandenen Symbole im FELD "ID" aus.

    Wenn Sie einen neuen Symbolnamen eingeben, wird ihm automatisch ein Wert zugewiesen.

Hinweis

Sie können das Dialogfeld "Ressourcensymbole" verwenden, um die Namen von Symbolen zu ändern, die derzeit keiner Ressource zugeordnet sind.

Beschränkungen bei Symbolwerten

Ein Symbolwert kann eine beliebige ganze Zahl sein, die in normaler Weise für #define Präprozessordirektiven ausgedrückt wird. Hier sind einige Beispiele für Symbolwerte:

18
4001
0x0012
-3456

Symbolwerte für Ressourcen wie Zugriffstasten, Bitmaps, Cursor, Dialogfelder, Symbole, Menüs, Zeichenfolgentabellen und Versionsinformationen müssen Dezimalzahlen im Bereich von 0 bis 32.767 sein, können jedoch nicht hexadezimal sein. Symbolwerte für Ressourcenbestandteile wie Dialogfeldsteuerelemente oder einzelne Zeichenfolgen in der Zeichenfolgentabelle können von 0 bis 65.534 oder von -32.768 bis 32.767 reichen. Weitere Informationen zu Zahlenbereichen finden Sie unter TN023: Standard MFC Resources.

Ressourcensymbole sind 16-Bit-Zahlen. Sie können sie als signiert oder nicht signiert eingeben, sie werden jedoch intern als nicht signierte ganze Zahlen verwendet, sodass negative Zahlen in ihren entsprechenden positiven Wert umgewandelt werden.

Einige Einschränkungen von Symbolwerten sind:

  • Die Visual Studio-Entwicklungsumgebung und MFC verwenden einige Zahlenbereiche für besondere Zwecke. Alle Zahlen mit dem wichtigsten Bitset (-32.768 bis -1 oder 32.768 bis 65.534 in Abhängigkeit des Zeichens) sind für MFC reserviert.

  • Sie können einen Symbolwert nicht mithilfe anderer Symbolzeichenfolgen definieren. Die folgende Symboldefinition wird beispielsweise nicht unterstützt:

    #define IDC_MYEDIT  IDC_OTHEREDIT  //not supported
    
  • Sie können Präprozessormakros nicht mit Argumenten als Wertdefinitionen verwenden. Das folgende Beispiel ist kein gültiger Ausdruck, unabhängig davon, was ID zur Kompilierungszeit ausgewertet wird:

    #define   IDD_ABOUT  ID(7) //not supported
    
  • Ihre Anwendung verfügt möglicherweise über eine vorhandene Datei, die mit Ausdrücken definierte Symbole enthält.

So ändern Sie einen Symbolwert

  1. Wählen Sie in der Ressourcenansicht die Ressource aus.

  2. Geben Sie im Eigenschaftenfenster den Symbolnamen gefolgt von einem Gleichheitszeichen und einer ganzen Zahl in das FELD "ID " ein, z. B.:

    IDC_EDITNAME=5100
    

    Der neue Wert wird in der Symbolheaderdatei gespeichert, wenn Sie das nächste Mal das Projekt speichern. Nur der Symbolname ist Standard im ID-Feld sichtbar, und das Gleichheitszeichen und der Wert werden nach der Überprüfung nicht angezeigt.

Ändern oder Löschen von Symbolen

Im Dialogfeld "Ressourcensymbole" können Sie vorhandene Symbole bearbeiten oder löschen, die noch nicht einer Ressource oder einem Objekt zugeordnet sind.

So ändern Sie ein nicht zugewiesenes Symbol

  1. Wählen Sie im Feld "Name " das Symbol "Nicht zugewiesen" und dann " Ändern" aus.

  2. Bearbeiten Sie den Namen oder Wert des Symbols in den Feldern im Dialogfeld "Symbol ändern".

Hinweis

Um ein Symbol zu ändern, das einer Ressource oder einem Objekt zugewiesen ist, müssen Sie den Ressourcen-Editor oder das Eigenschaftenfenster verwenden.

So löschen Sie ein nicht zugewiesenes (nicht verwendetes) Symbol

Wählen Sie im Dialogfeld "Ressourcensymbole" das Symbol aus, das Sie löschen möchten, und wählen Sie "Löschen" aus.

Hinweis

Stellen Sie vor dem Löschen eines nicht verwendeten Symbols in einer Ressourcendatei sicher, dass es nicht an anderer Stelle im Programm oder von Ressourcendateien verwendet wird, die zur Kompilierungszeit enthalten sind.

Symbole einschließen

Wenn die Entwicklungsumgebung erstmals eine durch eine andere Anwendung erstellte Ressourcendatei liest, markiert sie alle einbezogenen Headerdateien als schreibgeschützt. Sie können jedoch das Dialogfeld "Ressource enthält" verwenden, um zusätzliche schreibgeschützte Symbolkopfdateien hinzuzufügen.

Ein Grund, weshalb Sie möglicherweise schreibgeschützte Symboldefinitionen verwenden möchten, ist der Plan, Symboldateien unter verschiedenen Projekten freizugeben.

Sie können zudem einbezogene Symboldateien verwenden, wenn Sie über vorhandene Ressourcen mit Symboldefinitionen verfügen, die anstelle von einfachen Ganzzahlen Ausdrücke zum Definieren des Symbolwerts verwenden. Beispiel:

#define   IDC_CONTROL1 2100
#define   IDC_CONTROL2 (IDC_CONTROL1+1)

Die Umgebung interpretiert diese berechneten Symbole ordnungsgemäß, sofern Folgendes gegeben ist:

  • Die berechneten Symbole sind in einer schreibgeschützten Symboldatei platziert.

  • Ihre Ressourcendatei enthält Ressourcen, zu denen diese berechneten Symbole bereits zugewiesen sind.

  • Es wird ein numerischer Ausdruck erwartet.

Hinweis

Wenn eine Zeichenfolge oder ein numerischer Ausdruck erwartet wird, wird der Ausdruck nicht ausgewertet.

So beziehen Sie freigegebene (schreibgeschützte) Symbole in Ihrer Ressourcendatei ein

  1. Klicken Sie in der Ressourcenansicht mit der rechten Maustaste auf Ihre RC-Datei, und wählen Sie "Ressource enthält" aus.

  2. Verwenden Sie im Feld "Schreibgeschützte Symboldirektiven " die #include Compilerdirektive, um die Datei anzugeben, in der die schreibgeschützten Symbole aufbewahrt werden sollen.

    Rufen Sie die Datei Resource.hnicht auf, da dies der Dateiname ist, der normalerweise von der Standard Symbolkopfdatei verwendet wird.

    Hinweis

    Was Sie in das Feld mit schreibgeschützten Symboldirektiven eingeben, ist genau während der Eingabe in die Ressourcendatei enthalten. Stellen Sie sicher, dass die Eingabe weder Schreib- noch Syntaxfehler aufweist.

    Verwenden Sie das Feld mit schreibgeschützten Symboldirektiven , um Nur Dateien mit Symboldefinitionen einzuschließen. Schließen Sie keine Ressourcendefinitionen ein, andernfalls werden beim Speichern der Datei doppelte Ressourcendefinitionen erstellt.

  3. Platzieren Sie die Symbole in der von Ihnen angegebenen Datei.

    Die Symbole in Dateien, die auf diese Weise enthalten sind, werden jedes Mal ausgewertet, wenn Sie Ihre Ressourcendatei öffnen, aber sie werden beim Speichern der Datei nicht auf dem Datenträger ersetzt.

  4. Klicken Sie auf OK.

So ändern Sie den Namen den Symbolheaderdatei für die Ressource

  1. Klicken Sie in der Ressourcenansicht mit der rechten Maustaste auf Ihre RC-Datei, und wählen Sie "Ressource enthält" aus.

  2. Geben Sie im Feld "Kopfzeilendatei " den neuen Namen für die Includedatei ein.

Anforderungen

Win32

Siehe auch

Ressourcenbezeichner (Symbole)
Vorgehensweise: Erstellen von Symbolen
Vordefinierte Symbol-IDs