TN020. Соглашения именования и нумерации идентификаторов
Эта заметка описывает именование идентификатор и соглашения, оцифровки MFC 2.0 используется для ресурсов, команд, строк, элементы управления и дочерних окон.
Именование идентификатор MFC и соглашения оцифровки должны удовлетворять следующим требованиям:
Предоставление согласованного этой стандарт именования, используемый в библиотеку MFC и приложения MFC, поддерживаются редакторами ресурсов Visual C++. Это упрощает для программиста интерпретация тип и вертикали ресурсов на основе идентификатора.
Указаны сильную наличии сопоставления одного связь между некоторыми типами идентификаторов.
Совпадение с уже широко используемым стандартам именования для идентификаторов в Windows.
Разделите пробел в этой оцифровки. Идентификаторы могут быть присвоены программистом, MFC, Windows и визуально ресурсами C ++-edited. Необходимое разделение помогает избежать дублирования идентификатора.
Соглашение об именовании префикса идентификатор
Несколько типов идентификаторов могут возникнуть в приложении. Соглашение именования этой MFC определяет различные префиксы для различных типов ресурсов.
MFC использует префикс «IDR_» для указания идентификатора ресурса, которое применяется для нескольких типов ресурсов. Например, для заданного фреймового окна, MFC использует этот префикс «IDR_» для обозначения ресурс меню, сочетания клавиш, строки и Значка. В следующей таблице показаны различные префиксы и их потребление:
Префикс |
Применение |
---|---|
IDR_ |
Для нескольких типов ресурсов (главное меню, используемых для сочетаний клавиш и лент). |
IDD_ |
Для ресурсов шаблона диалогового окна (например, IDD_DIALOG1). |
IDC_ |
Для ресурсов курсора. |
IDI_ |
Для ресурса Значка. |
IDB_ |
Для ресурсов растрового изображения. |
IDS_ |
Для строковых ресурсов. |
В ресурс диалогового окна MFC, применяются следующие правила:
Префикс или метка |
Применение |
---|---|
IDOK, IDCANCEL |
Для обычных идентификаторов кнопки. |
IDC_ |
Для других элементов управления диалогового окна. |
Префикс «IDC_» также используется для курсоров. Этот конфликт имен не является проблемой, поскольку типичное приложение будет содержать несколько курсоры и множество элементов управления диалогового окна.
В ресурс меню MFC, применяются следующие правила:
Префикс |
Применение |
---|---|
IDM_ |
Для пунктов меню, которые не используют архитектуру команды MFC. |
ID_ |
Для команд меню, которые используют архитектуру команды MFC. |
Команды, которые следуют архитектура команды MFC должен иметь обработчик команды ON_COMMAND и могут иметь обработчик ON_UPDATE_COMMAND_UI. Если эти обработчиков команд используется архитектура команды MFC, они будут функция правильно ли они прыгнуть команду меню, кнопки панели инструментов, или кнопку диалоговой панели. Этот префикс «ID_» также используется для запроса строки меню, которая отображается на панели сообщений программы. Большинство пунктов меню в приложении должна следовать соглашениям команды MFC. Все стандартных идентификаторов команд (например, ID_FILE_NEW) используется это соглашение.
MFC также использует «IDP_» как специализированная форма строк (вместо «IDS_»). Строки с префиксом «IDP_» запросы, то есть строки, используемые в окнах. Строки «IDP_» могут содержать «%1 " и «%2 " в качестве местозаполнителей строк заданных программой. Строки «IDP_» обычно есть разделы справки, связанные с ними и строки «IDS_» нет. Строки «IDP_» всегда локализуются и строки «IDS_» не могут быть локализованы.
Библиотека MFC также используется префикс «IDW_» как специализированная форма идентификатора элемента управления (вместо «IDC_»). Эти идентификаторы присвоенные дочерним окон, таких как представления и разделители классами платформы. Идентификатор реализации MFC присоединены буква «AFX_».
Соглашение этой оцифровки
В следующей таблице перечислены допустимые диапазоны идентификаторов для определенных типов. Некоторые ограничения технические ограничения реализации и другие соглашения, предназначенных для предотвращения выполнения идентификаторы из вступать в противоречия с идентификаторы или реализациями по умолчанию MFC предопределенными Windows.
Мы настоятельно рекомендуется задать все идентификаторы в три диапазонов. Нижний предел этих диапазонов 1, поскольку 0 не используется. Рекомендуется использовать общие соглашения и использовать 100 или 101 в качестве первого идентификатор.
Префикс |
Тип ресурса |
Допустимый диапазон |
---|---|---|
IDR_ |
несколько |
1 0x6FFF сквозное |
IDD_ |
шаблонов диалоговых окон |
1 0x6FFF сквозное |
IDC_, IDI_, IDB_ |
курсоры, Значки, растровые изображения |
1 0x6FFF сквозное |
IDS_, IDP_ |
общих строк |
1 0x7FFF сквозное |
ID_ |
команды |
0x8000 через 0xDFFF |
IDC_ |
Элементы управления |
8 0xDFFF сквозных |
Причины для этих диапазоне ограничения:
По соглашению значение идентификатора 0 не используется.
Ограничения реализации Windows ограничивают истинные идентификатора ресурса, чтобы быть меньше или приравнивают в 0x7FFF.
Внутренняя платформы MFC резервирует эти диапазоны.
0x7000 через 0x7FFF (см. afxres.h)
0xE000 через 0xEFFF (см. afxres.h)
16000 до 18000 (см. afxribbonres.h)
Эти диапазоны может измениться в будущих реализациях MFC.
Несколько команд системы Windows используется диапазон 0xF000 через 0xFFFF.
Идентификатор элемента управления 1 до 7 зарезервированы для стандартных элементов управления, таких как IDOK и IDCANCEL.
Диапазон 0x8000 через 0xFFFF для строк зарезервировано для запросов меню команд.