TN020: Konvence pojmenování a číslování pro identifikátory
Tato poznámka popisuje konvence pojmenování a číslování ID, které mfc 2.0 používá pro prostředky, příkazy, řetězce, ovládací prvky a podřízená okna.
Konvence pojmenování a číslování ID MFC jsou určeny ke splnění následujících požadavků:
Zadejte konzistentní standard pojmenování ID používaný v knihovně MFC a aplikacích MFC podporovaných editorem prostředků Jazyka Visual C++. To usnadňuje programátoru interpretaci typu a původu prostředku z JEHO ID.
Zvýrazněte silný vztah 1:1 mezi určitými typy ID.
Vyhovuje již běžně používaným standardům pro pojmenování ID ve Windows.
Rozdělte mezeru pro číslování ID. Čísla ID můžou přiřadit programátoři, MFC, Windows a prostředky upravené jazykem Visual C++. Vhodné dělení vám pomůže vyhnout se duplikaci čísel ID.
Konvence vytváření názvů předpon ID
V aplikaci může dojít k několika typům ID. Konvence vytváření názvů ID mfc definuje různé předpony pro různé typy prostředků.
MFC používá předponu "IDR_" k označení ID prostředku, které se vztahuje na více typů prostředků. Například pro dané okno rámce používá mfc stejnou předponu "IDR_" k označení nabídky, akcelerátoru, řetězce a ikony prostředku. Následující tabulka uvádí různé předpony a jejich použití:
Předpona | Použít |
---|---|
IDR_ | Pro více typů prostředků (primárně používané 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_ | U prostředků ikon. |
IDB_ | Pro rastrové zdroje. |
ID_ | Pro řetězcové prostředky. |
V rámci prostředku DIALOGOVÉho okna mfc se řídí těmito konvencemi:
Předpona nebo popisek | Použít |
---|---|
IDOK, IDCANCEL | Pro id standardních tlačítek |
IDC_ | Pro další ovládací prvky dialogového okna. |
Předpona "IDC_" se také používá pro kurzory. Tento konflikt pojmenování není obvykle problém, protože typická aplikace bude mít několik kurzorů a mnoho ovládacích prvků dialogového okna.
V rámci prostředku nabídky mfc se řídí těmito konvencemi:
Předpona | Použít |
---|---|
IDM_ | Pro položky nabídky, které nepoužívají architekturu příkazů MFC. |
ID_ | Příkazy nabídky, které používají architekturu příkazů MFC. |
Příkazy, které následují v architektuře příkazů MFC, musí mít obslužnou rutinu příkazu ON_COMMAND a můžou mít obslužnou rutinu ON_UPDATE_COMMAND_UI. Pokud tyto obslužné rutiny příkazů dodržují architekturu příkazů MFC, budou správně fungovat bez ohledu na to, jestli jsou svázané s příkazem nabídky, tlačítkem panelu nástrojů nebo tlačítkem dialogového okna. Stejná předpona "ID_" se používá také pro řetězec výzvy nabídky, který se zobrazí na panelu zpráv programu. Většina položek nabídky v aplikaci by měla dodržovat konvence příkazů MFC. Všechna standardní ID příkazů (například ID_FILE_NEW) se řídí touto konvencí.
MFC také používá "IDP_" jako specializovanou formu řetězců (místo "IDS_"). Řetězce s předponou "IDP_" jsou výzvy, to znamená řetězce používané v polích zpráv. Řetězce "IDP_" můžou obsahovat "%1" a "%2" jako zástupné symboly řetězců určených programem. Řetězce "IDP_" obvykle obsahují témata nápovědy související s nimi a řetězce "IDS_" ne. Řetězce "IDP_" jsou vždy lokalizované a řetězce "IDS_" nemusí být lokalizovány.
Knihovna MFC také používá předponu "IDW_" jako specializovanou formu ID ovládacích prvků (místo "IDC_"). Tato ID jsou přiřazena podřízeným oknám, jako jsou zobrazení a rozdělovače podle tříd architektury. ID implementace MFC mají předponu "AFX_".
Konvence číslování ID
Následující tabulka uvádí platné oblasti pro ID konkrétních typů. Některá omezení jsou omezení technické implementace a jiné jsou konvence, které jsou navržené tak, aby zabránily kolidování VAŠICH ID s předdefinovanými ID Windows nebo výchozími implementacemi MFC.
Důrazně doporučujeme definovat všechna ID v doporučených rozsazích. Dolní limit těchto rozsahů je 1, protože 0 se nepoužívá. Doporučujeme použít společnou konvenci a jako první ID použít 100 nebo 101.
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, rastrové obrázky | 1 až 0x6FFF |
IDS_, IDP_ | obecné řetězce | 1 až 0x7FFF |
ID_ | příkazy | 0x8000 prostřednictvím 0xDFFF |
IDC_ | ovládací prvky | 8 až 0xDFFF |
Důvody těchto limitů rozsahu:
Podle konvence se hodnota ID 0 nepoužívá.
Omezení implementace Windows omezují skutečná ID prostředků na menší nebo rovno 0x7FFF.
Interní architektura MFC si vyhrazuje tyto rozsahy:
0x7000 0x7FFF (viz afxres.h)
0xE000 0xEFFF (viz afxres.h)
16000 až 18000 (viz afxribbonres.h)
Tyto rozsahy se mohou v budoucích implementacích MFC změnit.
Několik systémových příkazů systému Windows používá rozsah 0xF000 prostřednictvím 0xFFFF.
ID ovládacích prvků 1 až 7 jsou vyhrazena pro standardní ovládací prvky, jako jsou IDOK a IDCANCEL.
Rozsah 0x8000 až 0xFFFF řetězců je vyhrazen pro příkazy v nabídkách.
Viz také
Technické poznámky podle čísel
Technické poznámky podle kategorií