В настоящей записке описываются имен 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; Технические примечания по категориям