TN022: Осуществление стандартные команды

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

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

Проблема

MFC определяет многие идентификаторы стандартных команд в заголовочном файле AFXRES.H. поддержка для этих команд меняется. Понимая, как и где классов framework обрабатывать эти команды будут не только показать вам, как работает внутри рамки, но обеспечит полезную информацию о том, как настроить стандартных реализаций и надеюсь учить вас несколько методов для реализации собственных обработчиков команд.

Содержание настоящей технической записки

Каждый Идентификатор команды описаны в двух разделах:

Большинство реализаций команд по умолчанию prewired в рамках базового класса сообщений карте. Есть некоторые реализации команд, которые требуют явного проводки в производном классе. Они описаны в «Примечание». Если вы выбрали правильный опции в AppWizard, эти обработчики по умолчанию будет подключен для вас в созданном скелете приложения.

Соглашение об именах

Стандартные команды следуют простой именования, которые мы рекомендуем вам использовать возможности. Большинство стандартных команд, расположены в стандартных местах в строке меню приложения. Символическое имя команды начинается с «ID_», за которым следует имя меню стандартного контекстного меню, за которым следует имя пункта меню. Символическое имя находится в верхнем регистре с подчеркивания переноса слов. Для команд, которые не имеют стандартное меню пункт названия имя логического команды определяется, начиная с «ID_» (например, ID_NEXT_PANE).

Мы используем префикс «ID_» указать команды, которые могут быть привязаны к пунктам меню, кнопки панели инструментов или других объектов команд интерфейса пользователя. Обработчики команды обработки команд «ID_» следует использовать ON_COMMAND и ON_UPDATE_COMMAND_UI механизмы архитектуры команды MFC.

Мы рекомендуем вам использовать стандартный префикс "IDM_" для пунктов меню, которые не следуют команда архитектуры и нуждаются в меню-код не включать и отключать их. Конечно же число конкретных команд меню должно быть небольшим, так как команда архитектуры MFC не только делает более мощные обработчики команды (так как они будут работать с панели инструментов) но делает код обработчика команды для повторного использования.

ID диапазоны

Обратитесь к технической записке 20 для получения более подробной информации об использовании ID диапазонов в MFC.

Стандартные команды MFC, попадают в диапазоне 0xE000 для 0xEFFF. Пожалуйста не полагаться на конкретные значения этих кодов так, как они могут быть изменены в будущих версиях библиотеки.

Ваше приложение должно определить свои команды в диапазоне 0x8000 для 0xDFFF.

Стандартные идентификаторы команд

Для каждого Идентификатора команды существует стандартное сообщение оперативного строки, можно найти в запросы файлов.RC. Идентификатор строки для этого приглашения меню должны быть теми же, что и Идентификатора команды.

Обновление только обработчиков команд

Существует несколько стандартных команд идентификаторов, которые используются в качестве показателей в строках состояния. Эти же команды update UI, механизм обработки для отображения используется их текущее состояние во время простоя приложений. Так как они не могут быть выбраны пользователем (то есть, нельзя нажать панели строки состояния), то это не имеет смысла иметь обработчик ON_COMMAND для них идентификаторы команд.

Все три из них реализованы в CFrameWnd::OnUpdateKeyIndicator, осуществления помощника, который использует Идентификатор команды для сопоставления соответствующего виртуального ключа. Общая реализация включает или отключает (для панелей статуса инвалидов = без текста) CCmdUI объект зависимости ли соответствующий виртуальный ключ заблокирован в данный момент.

Настройка обработчика этой команды не рекомендуется.

В настоящее время нет никакой стандартной реализации для этих показателей.

Если вы решите выполнить эти показатели, мы рекомендуем вам использовать эти идентификаторы индикатор и поддержание упорядочение показателей в строке состояния (то есть, в следующем порядке: EXT, CAP, NUM, SCRL, OVR, РЭЦ).

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

Index