TN020: Именование идентификатор и соглашения нумерации

Эта заметка описывает именования идентификаторов и соглашения нумерации, MFC использует 2.0 ресурсов, команд строк, элементов управления и дочерних окон.

Именование идентификатор MFC и соглашения нумерации должны удовлетворять следующим требованиям:

  • Предоставление согласованного ИД-называя стандарт, используемый с помощью библиотеки MFC и приложения MFC, поддерживаемые редактором ресурсов Visual C++.Это облегчает для программиста интерпретации тип и начало координат ресурса из его идентификатора.

  • Подчеркивание строгое отношение " один к одному " между некоторыми типами идентификаторов.

  • Соответствует уже широко используемым стандартам именования идентификаторов в окнах.

  • Разделите пространство ИД-оцифровки.Идентификаторы могут быть присвоенны разработчиком приложения MFC, окнами и визуальные ресурсами 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_»).Эти идентификаторы присвоенные дочерним окна, как представления и splitters классами платформы.Идентификаторы реализации MFC имеют префикс «AFX_».

Соглашение ИД-Оцифровки

В следующей таблице перечислены допустимые диапазоны идентификаторов определенных типов.Некоторые ограничения технические ограничения реализации и другие соглашения, которые предназначены для предотвращения собственные идентификаторы из вступать в конфликт с идентификаторами стандартными окнами или реализаций MFC по умолчанию.

Настоятельно рекомендуется указать все идентификаторы в рекомендуемых диапазонов.Нижняя этих диапазонов значение 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.

  • Ограничения реализации окон ограничивают реальной идентификаторы ресурсов, чтобы быть меньше или равным 0x7FFF.

  • Реализации архитектуры MFC внутренние резервируют диапазона: 2 0x7000 через 0x7FFF и 0xE000 через 0xEFFF.

  • Несколько команд системы windows используется диапазон 0xF000 через 0xFFFF.

  • Идентификаторов элементов управления, 1 до 7 зарезервированы для стандартных элементов управления, таких как IDOK и IDCANCEL.

  • Диапазон 0x8000 через 0xFFFF для строк зарезервирован для приглашений меню команд.

См. также

Другие ресурсы

Технические замечания по номеру

Технические замечания по категориям