TN020: ID названия и нумерация конвенций

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

Проблема

Именование MFC ID и нумерация конвенций призваны отвечать следующим требованиям:

Обзор префикс Идентификатора, соглашения об именовании

Существует несколько категорий или типы идентификаторов в приложение. Именование MFC ID Конвенция определяет различные префиксы для различных типов ресурсов.

MFC использует префикс "IDR_" для обозначения Идентификатор ресурса, который применяется к нескольким типам ресурсов. К примеру для данного окна, то же значение "IDR_" используется для обозначения на меню, ускоритель, string и икона ресурс все сразу.

IDR_ Несколько типов ресурсов (используется главным образом для меню, ускорители).
IDD_ Для ресурсов шаблона диалогового окна (например, IDD_DIALOG1).

IDC_

Ресурсы курсора.

IDI_

Для значка ресурсов.

IDB_

Для растровых ресурсов.

IDS_

Для строковых ресурсов.


Обратите внимание, что значение IDS_ для строкового ресурса является Идентификатор, переданный LoadString. Фактическое осуществление строк в таблице ресурсов группы вместе 16 строк в один сегмент.

В рамках диалога ресурс мы следуем Конвенции о:

IDOK,IDCANCEL Для стандартной кнопки идентификаторы.
IDC_

Для других элементов управления диалогового окна.

Префикс "IDC_" также используется для курсоров. Этот конфликт имен обычно не является проблемой так как типичное приложение будет иметь несколько курсоров и большое количество элементов управления диалоговых окон.

В меню ресурс мы следуем Конвенции о:

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_"). Эти идентификаторы назначаются дочерние окна, такие как представления и сплиттеры framework классами. MFC осуществление идентификаторы имеют префикс "AFX_".

Обзор Конвенции, ID-нумерации

Ниже перечислены допустимые диапазоны для идентификаторов определенных типов. Некоторые из пределов являются ограничения технического осуществления, в то время как другие являются просто конвенций для предотвращения ваши идентификаторы от столкновения с стандартные идентификаторы Windows или 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

Причины этих пределов диапазона:

Технические примечания по номеру |nbsp; Технические примечания по категориям

Index