Sdílet prostřednictvím


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í