Postupy: Správa symbolů
Když vytvoříte nový prostředek nebo objekt prostředku, vývojové prostředí mu přiřadí výchozí název symbolu, IDD_DIALOG1
například . Pomocí okno Vlastnosti můžete změnit výchozí název symbolu nebo změnit název libovolného symbolu, který je již přidružený k prostředku.
U symbolů přidružených k jednomu prostředku můžete také pomocí okna Vlastnosti změnit hodnotu symbolu. Pomocí dialogového okna Symboly zdrojů můžete změnit hodnotu symbolů, které nejsou aktuálně přiřazeny k prostředku.
Za normálních okolností jsou všechny definice symbolů uloženy v Resource.h
. Možná ale budete muset tento název souboru zahrnout, abyste mohli například pracovat s více než jedním souborem prostředků ve stejném adresáři.
Poznámka:
Pokud projekt ještě neobsahuje soubor .rc, přečtěte si téma Postupy: Vytvoření prostředků.
Omezení názvu symbolu
Omezení názvů symbolů jsou následující:
Všechny symboly musí být jedinečné v rámci aplikace, aby se zabránilo konfliktní definici symbolů v souborech hlaviček.
Platné znaky pro název symbolu zahrnují A-Z, a-z, 0-9 a podtržítka ( _ ).
Názvy symbolů nemůžou začínat číslem a jsou omezené na 247 znaků.
Názvy symbolů nemohou obsahovat mezery.
V názvech symbolů se nerozlišuje malá a velká písmena, ale zachovají se malá a velká písmena první definice symbolu.
Hlavičkový soubor, který definuje symboly, používá kompilátor prostředků nebo editor prostředků i programy jazyka C++ k odkazování prostředků definovaných v souboru prostředků. U dvou názvů symbolů, které se liší pouze v případě, program C++ uvidí dva samostatné symboly, zatímco kompilátor prostředků nebo editor uvidí oba názvy jako odkazující na jeden jediný symbol.
Poznámka:
Pokud nedodržujete standardní schéma názvů symbolů (ID*_[klíčové slovo]) uvedené níže a název symbolu bude stejný jako klíčové slovo známé kompilátoru skriptu prostředků, pokus o sestavení souboru skriptu prostředku způsobí zdánlivě náhodné generování chyb, které je obtížné diagnostikovat. Chcete-li tomu zabránit, dodržujte standardní schéma pojmenování.
Názvy symbolů mají popisné předpony, které označují druh prostředku nebo objektu, které představují. Tyto popisné předpony začínají ID kombinace textu. Knihovna MFC (Microsoft Foundation Class) používá zásady vytváření názvů symbolů uvedené v následující tabulce:
Kategorie | Předpona | Používání |
---|---|---|
Zdroje informací | IDR_, IDD_, IDC_, IDI_, IDB_ | Akcelerátor nebo nabídka (a přidružené nebo vlastní prostředky), dialogové okno, kurzor, ikona, rastrový obrázek |
Položky nabídky | ID_ | Položka nabídky |
Příkazy | ID_ | Příkaz |
Ovládací prvky a podřízená okna | IDC_ | Ovládací prvek |
Řetězce | ID_ | Řetězec v tabulce řetězců |
MFC | AFX_ | Vyhrazeno pro předdefinované symboly MFC |
Změna názvu symbolu (ID)
V zobrazení zdrojů vyberte prostředek.
V okně Vlastnosti zadejte nový název symbolu nebo vyberte ze seznamu existujících symbolů v poli ID.
Pokud zadáte nový název symbolu, přiřadí se automaticky hodnota.
Poznámka:
Pomocí dialogového okna Symboly zdrojů můžete změnit názvy symbolů, které nejsou aktuálně přiřazené k prostředku.
Omezení hodnoty symbolu
Hodnota symbolu může být libovolné celé číslo vyjádřené normálním způsobem direktiv #define
preprocesoru. Tady je několik příkladů hodnot symbolů:
18
4001
0x0012
-3456
Hodnoty symbolů pro prostředky, jako jsou akcelerátory, rastrové obrázky, kurzory, dialogová okna, ikony, nabídky, tabulky řetězců a informace o verzi, musí být desetinná čísla v rozsahu od 0 do 32 767, ale nesmí být šestnáctková. Hodnoty symbolů pro části prostředků, například ovládací prvky dialogového okna nebo jednotlivé řetězce v tabulce řetězců, můžou být od 0 do 65 534 nebo od -32 768 do 32 767. Další informace o rozsahech čísel naleznete v tématu TN023: Standardní prostředky MFC.
Symboly prostředků jsou 16bitová čísla. Můžete je zadat jako podepsané nebo nepodepsané, ale interně se používají jako celá čísla bez znaménka, takže záporná čísla budou přetypována na odpovídající kladnou hodnotu.
Mezi omezení hodnot symbolů patří:
Vývojové prostředí sady Visual Studio a prostředí MFC používají některé rozsahy čísel pro speciální účely. Mfc rezervuje všechna čísla s nejvýznamnější bitovou sadou (-32 768 až -1 nebo 32 768 až 65 534).
Hodnotu symbolu nemůžete definovat pomocí jiných řetězců symbolů. Například následující definice symbolu není podporovaná:
#define IDC_MYEDIT IDC_OTHEREDIT //not supported
Makra preprocesoru nemůžete použít s argumenty jako definice hodnot. Následující příklad není platný výraz bez ohledu na to, co
ID
se vyhodnocuje v době kompilace:#define IDD_ABOUT ID(7) //not supported
Aplikace může mít existující soubor obsahující symboly definované pomocí výrazů.
Změna hodnoty symbolu
V zobrazení zdrojů vyberte prostředek.
V okně Vlastnosti zadejte název symbolu následovaný symbolem rovná se a celé číslo do pole ID, například:
IDC_EDITNAME=5100
Nová hodnota se uloží do souboru záhlaví symbolu při příštím uložení projektu. V poli ID zůstane viditelný jenom název symbolu a po ověření se nezobrazí symbol rovná se a hodnota.
Změna nebo odstranění symbolů
V dialogovém okně Symboly zdrojů můžete upravit nebo odstranit existující symboly, které ještě nejsou přiřazené k prostředku nebo objektu.
Změna nepřiřazeného symbolu
V poli Název vyberte nepřiřazený symbol a zvolte Změnit.
Upravte název nebo hodnotu symbolu v polích uvedených v dialogovém okně Změnit symbol .
Poznámka:
Pokud chcete změnit symbol přiřazený k prostředku nebo objektu, musíte použít editor prostředků nebo okno Vlastnosti .
Odstranění nepřiřazeného (nepoužívaného) symbolu
V dialogovém okně Symboly zdrojů vyberte symbol, který chcete odstranit, a zvolte Odstranit.
Poznámka:
Před odstraněním nepoužívaného symbolu v souboru prostředků se ujistěte, že se nepoužívá jinde v programu nebo souborech prostředků zahrnutých v době kompilace.
Zahrnout symboly
Když vývojové prostředí poprvé přečte soubor prostředků vytvořený jinou aplikací, označí všechny zahrnuté soubory hlaviček jako jen pro čtení. I když můžete pomocí dialogového okna Zahrnout prostředky přidat další soubory záhlaví symbolů jen pro čtení.
Jedním z důvodů, proč můžete chtít použít definice symbolů jen pro čtení, jsou soubory symbolů, které plánujete sdílet mezi několika projekty.
Zahrnuté soubory symbolů můžete použít také v případech, kdy máte existující prostředky s definicemi symbolů, které místo jednoduchých celých čísel definují hodnotu symbolu. Příklad:
#define IDC_CONTROL1 2100
#define IDC_CONTROL2 (IDC_CONTROL1+1)
Prostředí správně interpretuje tyto počítané symboly, pokud:
Počítané symboly se umístí do souboru symbolů jen pro čtení.
Soubor prostředků obsahuje prostředky, ke kterým jsou tyto počítané symboly již přiřazeny.
Očekává se číselný výraz.
Poznámka:
Pokud se očekává řetězec nebo číselný výraz, výraz se nevyhodnotí.
Zahrnutí sdílených (jen pro čtení) symbolů do souboru prostředků
V zobrazení prostředků klikněte pravým tlačítkem myši na váš soubor .rc a vyberte Resource Includes.
V poli Direktivy symbolů jen pro čtení použijte direktivu
#include
kompilátoru k určení souboru, ve kterém chcete zachovat symboly jen pro čtení.Nevolejte soubor
Resource.h
, protože se jedná o název souboru, který obvykle používá hlavní soubor záhlaví symbolu.Poznámka:
Co zadáte do pole direktiv symbolů jen pro čtení, je součástí souboru prostředků přesně tak, jak ho zadáte. Ujistěte se, že zadaný text neobsahuje žádné pravopisné nebo syntaktické chyby.
Pole Direktivy symbolů jen pro čtení použijte k zahrnutí souborů pouze s definicemi symbolů. Nezahrnujte definice prostředků, jinak se při uložení souboru vytvoří duplicitní definice prostředků.
Umístěte symboly do zadaného souboru.
Symboly v souborech zahrnutých tímto způsobem se vyhodnocují při každém otevření souboru prostředků, ale při uložení souboru se na disku nenahradí.
Vyberte OK.
Změna názvu souboru záhlaví symbolu prostředku
V zobrazení prostředků klikněte pravým tlačítkem myši na váš soubor .rc a zvolte Resource Includes.
Do pole Soubor záhlaví symbolu zadejte nový název souboru zahrnutí.
Požadavky
Win32
Viz také
Identifikátory prostředků (symboly)
Postupy: Vytváření symbolů
ID předdefinovaných symbolů