TN020: Konvence pojmenování a číslování pro identifikátory
Toto téma popisuje konvence identifikátorů názvů a číslování, které knihovna MFC 2.0 používá pro prostředky, příkazy, řetězce, ovládací prvky a podřízená okna.
Konvence identifikátorů a číslování knihovny MFC mají splňovat následující požadavky:
Poskytnout konzistentní standard pojmenování identifikátorů napříč celou knihovnou MFC a aplikacemi MFC, které jsou podporovány v editoru prostředků jazyka Visual C++.To programátorovi usnadňuje interpretaci typu a původu prostředku z jeho identifikátoru.
Zdůraznit silný vztah 1:1 mezi určitými typy identifikátorů.
Splnit již široce používané standardy pro vytváření názvů identifikátorů v systému Windows.
Rozdělení prostoru číslování identifikátorů.Čísla identifikátorů mohou být přiřazena programátorem, knihovnou MFC, systémem Windows a editovatelnými prostředky jazyka Visual C++.Vhodné rozdělení pomůže vyhnout se duplicitě čísel identifikátorů.
Konvence pojmenování předpony identifikátoru
V aplikaci se může vyskytnout několik typů identifikátorů.Konvence pojmenování identifikátorů knihovny MFC definuje různé předpony pro různé typy prostředků.
Knihovna MFC používá předponu „IDR_“ pro označení identifikátoru prostředku, který se vztahuje k více typům prostředků.Například pro dané okno rámce používá knihovna MFC stejnou předponu „IDR_“ k označení prostředku nabídky, akcelerátoru, řetězce a ikony.Následující tabulka zobrazuje různé předpony a jejich použití:
Předpona |
Pomocí |
---|---|
IDR_ |
Pro více typů prostředků (primárně pro nabídky, akcelerátory a pásy karet). |
IDD_ |
Pro prostředky šablony dialogového okna (například IDD_DIALOG1). |
IDC_ |
Pro prostředky kurzoru. |
IDI_ |
Pro prostředky ikony. |
IDB_ |
Pro prostředky rastrového obrázku. |
IDS_ |
Pro prostředky řetězce. |
Pro prostředek dialogového okna knihovna MFC používá tyto konvence:
Předpona nebo popisek |
Pomocí |
---|---|
IDOK, IDCANCEL |
Pro standardní identifikátory tlačítka. |
IDC_ |
Pro ostatní ovládací prvky dialogového okna. |
Předpona „IDC_“ se také používá pro kurzory.Tento konflikt názvů není obvykle problém, protože typická aplikace bude mít několik kurzorů a mnoho ovládacích prvků dialogového okna.
Pro prostředek nabídky knihovna MFC používá tyto konvence:
Předpona |
Pomocí |
---|---|
IDM_ |
Pro položky nabídky, které nepoužívají architekturu příkazu knihovny MFC. |
ID_ |
Pro příkazy nabídky, které používají architekturu příkazu knihovny MFC. |
Příkazy, které následují architekturu příkazu knihovny MFC, musí mít obslužnou rutinu příkazu ON_COMMAND a může mít obslužnou rutinu ON_UPDATE_COMMAND_UI.Pokud tyto obslužné rutiny příkazu následují architekturu příkazu knihovny MFC, budou fungovat správně, ať jsou navázány na příkaz nabídky, tlačítko panelu nástrojů nebo tlačítko panelu dialogového okna.Stejná předpona „ID_“ se také používá pro řetězce výzvy nabídky, které se zobrazí na panelu zpráv programu.Většina těchto položek nabídky v aplikaci by měla následovat konvence příkazu knihovny MFC.Všechny standardní identifikátory příkazu (například ID_FILE_NEW) následují tuto konvenci.
Knihovna MFC používá také „IDP_“ jako speciální formu řetězců (namísto „IDS_“).Řetězce s předponou „IDP_“ jsou výzvy, to znamená řetězce použité v okně zprávy. Řetězce „IDP_“ mohou obsahovat „%1“ a „%2“ jako zástupné symboly řetězců určených programem. Řetězce „IDP_“ mají obvykle související témata nápovědy a řetězce „IDS_“ nikoli. Řetězce „IDP_“ jsou vždy lokalizované a řetězce „IDS_“ lokalizované být nemusí.
Knihovna MFC také používá předponu „IDW_“ jako zvláštní formu identifikátorů ovládacích prvků (místo „IDC_“).Tyto identifikátory jsou přiřazeny podřízeným oknům, jako jsou náhledy a příčky, třídami rozhraní.Identifikátory implementace knihovny MFC mají předponu „AFX_“.
Konvence číslování identifikátorů
Následující tabulka uvádí platné rozsahy identifikátorů určitých typů.Některé z těchto limitů jsou limity technického provedení a ostatní jsou konvence, které jsou navrženy tak, aby vaše identifikátory nekolidovaly s předdefinovanými identifikátory systému Windows nebo výchozí implementací knihovny MFC.
Důrazně doporučujeme definovat všechny identifikátory uvnitř doporučené oblasti.Dolní hranice těchto oblastí je 1, protože 0 není použita.Doporučujeme použít obvyklou konvenci a použít 100 nebo 101 pro první identifikátor.
Předpona |
Typ prostředku |
Platný rozsah |
---|---|---|
IDR_ |
vícenásobné |
1 až 0x6FFF |
IDD_ |
šablony dialogu |
1 až 0x6FFF |
IDC_, IDI_, IDB_ |
kurzory, ikony, bitmapy |
1 až 0x6FFF |
IDS_, IDP_ |
obecné řetězce |
1 až 0x7FFF |
ID_ |
příkazy |
0x8000 až 0xDFFF |
IDC_ |
ovládací prvky |
8 až 0xDFFF |
Důvody těchto omezení rozsahu:
Podle úmluvy není hodnota identifikátoru 0 použita.
Omezení implementace systému Windows omezují, aby identifikátor prostředku byl menší než nebo roven 0x7FFF.
Interní rozhraní knihovny MFC rezervuje tyto rozsahy:
0x7000 až 0x7FFF (viz afxres.h)
0xE000 až 0xEFFF (viz afxres.h)
16000 až 18000 (viz afxribbonres.h)
Tyto rozsahy se mohou změnit v budoucích implementacích knihovny MFC.
Několik příkazů systému Windows používá rozsah 0xF000 až 0xFFFF.
Identifikátory ovládacího prvku 1 až 7 jsou vyhrazeny pro standardní ovládací prvky, například IDOK a IDCANCEL.
Rozsah 0x8000 až 0xFFFF pro řetězce je vyhrazen pro výzvy nabídky příkazů.