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]) nicht folgen und Ihr Symbolname mit einem schlüsselwort identisch ist, das dem Ressourcenskriptcompiler bekannt ist, führt der Versuch, die Ressourcenskriptdatei zu erstellen, zu scheinbar zufälligen Fehlergenerierungen, die schwierig 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 | Zweck |
---|---|---|
Ressourcen | IDR_, IDD_, IDC_, IDI_, IDB_ | Schnellinfo oder Menü (und zugeordnete oder benutzerdefinierte Ressourcen), Dialogfeld, Cursor, Symbol, Bitmap |
Menüelemente | ID_ | Menüelement |
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)
Wählen Sie in der Ressourcenansicht die Ressource aus.
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
Wählen Sie in der Ressourcenansicht die Ressource aus.
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 bleibt im FELD "ID" 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
Wählen Sie im Feld "Name " das Symbol "Nicht zugewiesen" und dann " Ändern" aus.
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. Zum 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
Klicken Sie in der Ressourcenansicht mit der rechten Maustaste auf Ihre RC-Datei, und wählen Sie "Ressource enthält" aus.
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.h
nicht auf, da dies der Dateiname ist, der normalerweise von der Hauptsymbolkopfdatei 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.
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.
Wählen Sie OK aus.
So ändern Sie den Namen den Symbolheaderdatei für die Ressource
Klicken Sie in der Ressourcenansicht mit der rechten Maustaste auf Ihre RC-Datei, und wählen Sie "Ressource enthält" aus.
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