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 для строк зарезервирован для приглашений меню команд.