Udostępnij za pośrednictwem


TN020: konwencje nazewnictwa i numerowania identyfikatorów

Uwaga ta opisuje konwencje nazewnictwa i numerowania identyfikatorów, których MFC 2.0 używa dla zasobów, poleceń, ciągów, kontrolek i okien podrzędnych.

Konwencje nazewnictwa i numerowania identyfikatorów są przeznaczone do spełniania następujących wymagań:

  • Zapewnienie spójnego standardu nazewnictwa identyfikatorów używanych między bibliotekami MFC i aplikacjami MFC, które są obsługiwane przez edytor zasobów Visual C++.Ułatwia to programiście interpretację typu i źródła zasobu na podstawie identyfikatora.

  • Wyróżnienie silnej relacji jeden do jednego między niektórymi typami identyfikatorów.

  • Zapewnienie zgodności z szeroko używanymi już standardami nazewnictwa identyfikatorów w systemie Windows.

  • Podzielenie przestrzeni numerowania identyfikatorów.Numery identyfikatorów mogą być przypisane przez programistę, MFC, system Windows i zasoby edytowane w Visual C++.Odpowiednie partycjonowanie pomoże uniknąć powielania numerów identyfikatorów.

Konwencja nazewnictwa prefiksu identyfikatora

W aplikacji może wystąpić kilka typów identyfikatorów.Konwencja nazewnictwa identyfikatorów MFC definiuje prefiksy dla różnych typów zasobów.

MFC używa prefiksu "IDR_" do oznaczenia identyfikatora zasobu, który ma zastosowanie do wielu typów zasobów.Na przykład dla danej ramki okna, MFC wykorzystuje ten sam prefiks "IDR_" do wskazania menu, skrótu, ciągu i zasobu ikony.W poniższej tabeli pokazano różne prefiksy i ich wykorzystanie:

Prefiks

Użyj

IDR_

Dla wielu typów zasobów (przede wszystkim dla menu, skrótów i wstążek).

IDD_

Dla zasobów szablonu okna dialogowego (na przykład IDD_DIALOG1).

IDC_

Dla zasobów kursora.

IDI_

Dla zasobów ikony.

IDB_

Dla zasobów mapy bitowej.

IDS_

Dla zasobów ciągu.

W ramach zasobu DIALOG, MFC przestrzega następujących konwencji:

Prefiks lub etykieta

Użyj

IDOK, IDCANCEL

Dla identyfikatorów standardowego przycisku polecenia.

IDC_

Dla innych kontrolek okna dialogowego.

Prefiks "IDC_" jest także używany dla kursorów.Ten konflikt nazw nie jest zwykle problemem, ponieważ typowa aplikacja będzie miała tylko kilka kursorów i wiele kontrolek okna dialogowego.

W ramach zasobu menu, MFC przestrzega następujących konwencji:

Prefiks

Użyj

IDM_

Dla elementów menu, które nie korzystają z architektury poleceń MFC.

ID_

Dla poleceń menu, które używają architektury poleceń MFC.

Polecenia, które przestrzegają architektury poleceń MFC, muszą mieć procedurę obsługi poleceń ON_COMMAND i mogą mieć procedurę obsługi ON_UPDATE_COMMAND_UI.Jeśli te procedury obsługi poleceń są zgodne z architekturą poleceń MFC, będą funkcjonować prawidłowo, niezależnie czy są powiązane z poleceniem menu, przyciskiem paska narzędzi lub przyciskiem paska dialogowego.Ten sam prefiks "ID_" jest także używany dla ciągu menu podpowiedzi, wyświetlanego w pasku komunikatów programu.Większość elementów menu w aplikacji powinna być zgodna z konwencjami poleceń MFC.Wszystkie standardowe identyfikatory poleceń (na przykład ID_FILE_NEW) przestrzegają tej konwencji.

MFC używa również "IDP_" jako wyspecjalizowanej postaci ciągów (zamiast "IDS_").Ciągi z prefiksem "IDP_" są monitami, czyli ciągami użytymi w polach wiadomości. Ciągi "IDP_" mogą zawierać "%1" i "%2" jako symbole zastępcze ciągów określone przez program. Ciągi "IDP_" posiadają zazwyczaj tematy pomocy z nimi skojarzone, w przeciwieństwie do ciągów "IDS_". Ciągi "IDP_" są zawsze zlokalizowane, natomiast ciągi "IDS_" mogą nie być zlokalizowane.

Biblioteka MFC używa również prefiksu "IDW_" jako wyspecjalizowanej postaci identyfikatorów kontrolek (zamiast "IDC_").Te identyfikatory są przypisane do okien podrzędnych, takich jak widoki i rozdzielacze według klas framework.Identyfikatory implementacji MFC są poprzedzone prefiksem "AFX_".

Konwencja numerowania identyfikatorów

Poniższa tabela zawiera listę prawidłowych zakresów dla identyfikatorów określonych typów.Niektóre limity są limitami implementacji technicznej, a inne są konwencjami, które mają na celu zapobiec kolizji identyfikatorów użytkownika z wstępnie zdefiniowanymi identyfikatorami systemu Windows lub domyślnymi implementacjami MFC.

Stanowczo zaleca się definiowanie wszystkich identyfikatorów wewnątrz zalecanych zakresów.Dolna granica tych zakresów wynosi 1, ponieważ 0 nie jest używane.Zaleca się używać wspólnej konwencji i używać 100 lub 101 dla pierwszego identyfikatora.

Prefiks

Typ zasobu

Prawidłowy zakres

IDR_

wiele

od 1 do 0x6FFF

IDD_

szablony okna dialogowego

od 1 do 0x6FFF

IDC_,IDI_,IDB_

kursory, ikony, mapy bitowe

od 1 do 0x6FFF

IDS_, IDP_

ciągi ogólne

od 1 do 0x7FFF

ID_

polecenia

od 0x8000 do 0xDFFF

IDC_

kontrolki

od 8 do 0xDFFF

Przyczyny tych limitów zasięgu:

  • Zgodnie z konwencją, wartość 0 identyfikatora nie jest używana.

  • Ograniczenia implementacji systemu Windows ograniczają prawdziwe identyfikatory zasobów na mniejsze lub równe 0x7FFF.

  • Wewnętrzna struktura MFC zastrzega sobie następujące zakresy:

    • od 0x7000 do 0x7FFF (patrz afxres.h)

    • od 0xE000 do 0xEFFF (patrz afxres.h)

    • od 16000 do 18000 (patrz afxribbonres.h)

    Te zakresy mogą ulec zmianie w przyszłych implementacjach MFC.

  • Kilka poleceń systemu Windows używa zakresu od 0xF000 od 0xFFFF.

  • Identyfikatory kontrolek od 1 do 7 są zarezerwowane dla standardowych kontrolek, takich jak IDOK i IDCANCEL.

  • Zakres od 0x8000 do 0xFFFF dla ciągów jest zarezerwowany dla menu podpowiedzi lub poleceń.

Zobacz też

Inne zasoby

Uwagi techniczne według numerów

Uwagi techniczne według kategorii