TN020: ID 이름 지정 및 번호 지정 규칙

이 노트에서는 ID 명명 및 리소스, 명령, 문자열, 컨트롤 및 자식 창에 대 한 MFC 2.0에서 사용 되는 번호 매기기 규칙。

문제

MFC ID 명명 및 번호 매기기 규칙 다음 요구 사항을 충족 하기 위한 것입니다.:

ID 접두사 명명 규칙의 개요

여러 카테고리 또는 응용 프로그램 Id의 종류 있다. 다른 리소스 종류에 대해 다른 접두사를 정의 하는 MFC ID 명명 규칙。

MFC "IDR_" 접두사를 사용 하 여 여러 리소스 종류에 적용 되는 리소스 ID를 참조 합니다. 예를 들어, 특정된 프레임 창에 대 한 동일한 "IDR_" 값이 사용 됩니다 한 번에 모든 메뉴, 액셀러레이터, 문자열 및 아이콘 리소스를 참조 하。

IDR_ 여러 리소스 종류 (메뉴, 액셀러레이터에 주로 사용)。
IDD_ 대화 상자 템플릿 리소스 (예를 들어, IDD_DIALOG1)에 대 한。

IDC_

커서 리소스에 대 한。

IDI_

아이콘 리소스에 대 한。

IDB_

비트맵 리소스에 대 한。

IDS_

문자열 리소스에 대 한。


Note IDS_ 값 문자열 리소스에 대 한 LoadString에 전달 하는 ID입니다. 하나의 세그먼트로 문자열 테이블 리소스 그룹 함께 16 문자열의 실제 구현。

대화 상자 리소스에서의 규칙을 따르는 우리:

IDOK,IDCANCEL 표준 누름 단추 Id에 대 한。
IDC_

다른 대화 상자 컨트롤에 대 한。

"IDC_" 접두사는 커서에도 사용 됩니다. 이 명명 충돌 문제가 되지 않습니다 일반적으로 일반 응용 프로그램 몇 가지 커서와 대화 상자 컨트롤의 많은 수 있을 것 이다 이후。

메뉴 리소스 내 우리의 규칙에 따라:

IDM_ MFC 명령 아키텍처를 사용 하지 않는 메뉴 항목에 대 한。
ID_

MFC 명령 아키텍처를 사용 하 여 메뉴 항목 명령에 대 한。

MFC 명령 아키텍처에 따라 명령 ON_COMMAND 명령 처리기 있어야 하며 ON_UPDATE_COMMAND_UI 처리기가 있습니다. 만약 이러한 명령 처리기 MFC 명령 아키텍처에 따라, 그들은 것입니다 제대로 메뉴 항목, 도구 모음 단추 또는 대화 상자 막대 단추에 바인딩된 여부. 동일한 ID_ 프로그램의 메시지 표시줄에 표시 되는 메뉴 프롬프트 문자열도 사용 됩니다. 응용 프로그램에서 메뉴 항목의 대부분의 MFC 명령 규칙을 따라야 합니다. 이 규칙에 따라 모든 표준 명령 Id (예를 들어, ID_FILE_NEW)。

MFC는 또한 특수 한 형태의 문자열 "IDP_"를 사용 (즉, "IDS_" 하는 대신). "IDP_" 접두사를 사용 하 여 문자열 "메시지", 메시지 상자에 사용 되는 문자열은. "IDP_" 문자열 "%1" 및 "%2" 장소 보유자도 프로그램에 의해 결정 하는 문자열에 포함할 수 있습니다. "IDP_" 문자열 "IDS_" 문자열이 없는 반면에 일반적으로 도움말 항목을 있다. "IDP_" 문자열은 항상 지역화 "IDS_" 문자열 또는 지역화 되지 않을 수 있습니다 하는 동안。

MFC 라이브러리는 또한 컨트롤 Id의 특수 한 형태로 "IDW_" 접두사를 사용 (즉, "IDC_" 하는 대신). 이러한 Id framework 클래스 뷰 분할자와 같은 자식 창에 할당 됩니다. MFC 구현 Id는 접두사 "AFX_"로 시작。

규칙 ID 번호 매기기 개요

다음 특정 유형의 Id에 대 한 유효한 범위를 나열합니다. 제한 중 일부는 기술 구현 제한 반면 귀하의 Id 기본 구현에서는 Windows 미리 정의 된 Id 또는 MFC와 충돌 하지 않도록 하려면 그냥 규칙。

권장된 범위 밖에 서 정의 되지 않음 Id를 수행 하는 것이 좋습니다. 비록 많은 이러한 범위의 하한값 1 (0 사용 되지 않습니다), 100 또는 101에서 Id의 실제 사용을 시작 하는 일반적인 규칙。

접두사 리소스 종류 유효 범위
IDR_ 여러 1-gt; 0x6FFF(&G)
IDD_ 대화 템플릿 1-gt; 0x6FFF(&G)
IDC_, IDI_, IDB_ 커서, 아이콘, 비트맵 1-gt; 0x6FFF(&G)
IDS_, IDP_ 일반 문자열 1-gt; 0x7FFF(&G)
ID_ 명령 0x8000 gt; 0xDFFF(&G)
IDC_ 컨트롤 8-gt; 0xDFFF(&G)

이러한 범위 제한에 대 한 이유:

기술 노트 번호로 |nbsp; 카테고리별 기술 노트(&N)

Index