Поделиться через


TN022: Стандарт управляющий реализацией

ПримечаниеПримечание

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

Эта заметка описаны стандартные команды, содержащиеся в реализации MFC 2.0.Чтение Техническая примечание 21 первым, поскольку он описывает механизмы для реализации многих стандартных команд.

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

Проблема

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

Содержимое этой технической заметки

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

  • Заголовок: символическое имя идентификатор команды (например, ID_FILE_SAVE) и назначением команды (например, «сохраняет текущий документ»), разделенные двоеточием.

  • Один или несколько абзацев, описывающий, которые классы реализуют команду и делает - реализация по умолчанию

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

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

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

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

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

Диапазоны идентификатор

Пример см. в Техническая примечание 20 дополнительные сведения об использовании диапазонов идентификаторов в MFC.

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

Приложение должно определить его команды в диапазоне 0x8000 до 0xDFFF.

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

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

  • ID_FILE_NEW создает новый/пустой документ.

    ПримечаниеПримечание

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

    CWinApp::OnFileNew реализует эту команду по-разному, в зависимости от количества шаблонов документов в приложении.Если только один CDocTemplate, то CWinApp::OnFileNew создает новый документ данного типа, а также правильный класс и представления.

    Если несколько CDocTemplate, то CWinApp::OnFileNew запрашивает у пользователя с диалоговое окно (AFX_IDD_NEWTYPEDLG) препятствуя ним выбрать тип документа.Выбранное CDocTemplate используется для создания XML-документа.

    Одна общая настройка ID_FILE_NEW предоставить другой и более графический выбор типов документов.В этом случае можно реализовать собственное CMyApp::OnFileNew и разместить его в сопоставлении сообщений вместо CWinApp::OnFileNew.Нет необходимости вызывая реализацию базового класса.

    Другая распространенная настройка ID_FILE_NEW предоставить отдельную команду создать документ для каждого типа.В этом случае необходимо определить новые идентификаторы команд, например ID_FILE_NEW_CHART и ID_FILE_NEW_SHEET.

  • ID_FILE_OPEN открытие существующего документа.

    ПримечаниеПримечание

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

    CWinApp::OnFileOpen имеет очень простую реализацию вызвать CWinApp::DoPromptFileName выполните CWinApp::OpenDocumentFile с именем файла или пути файла открыть.Реализация обычного DoPromptFileNameCWinApp открывает диалоговое окно стандартное FileOpen и заполняет его с помощью расширения файла, полученные из шаблонов текущего документа.

    Одна общая настройка ID_FILE_OPEN настраивать диалоговое окно FileOpen или добавить дополнительные фильтры файлов.Рекомендуется настраивать это заменить реализация по умолчанию собственным диалоговым окном FileOpen и вызывает CWinApp::OpenDocumentFile с фаила документа или имя пути.Нет необходимости вызывать базовый класс.

  • В настоящее время ID_FILE_CLOSE закрывает открытый документ.

    CDocument::OnFileClose вызывает CDocument::SaveModified для запроса пользователя сохранить документ, если он был изменен, а затем вызывает метод OnCloseDocument.Вся логика заключительная, включая разрушать документа осуществляется в процедуре OnCloseDocument.

    ПримечаниеПримечание

    ID_FILE_CLOSE действует иначе, чем сообщением WM_CLOSE или командой системы SC_CLOSE отправляемые в фрейме окна документов.Закрыть окно закрывает документ только если это последнее окно фрейма, указывающее документ.Закрыть документ с ID_FILE_CLOSE не только закрывает документ, но закрывает все вниз окна фрейма, указывающее документ.

  • ID_FILE_SAVE сохраняет текущий документ.

    Реализация использует вспомогательный объект обычного CDocument::DoSave, которое используется как для OnFileSave, так и для OnFileSaveAs.При сохранении документа, не сохраняет перед (то есть оно отсутствует имя пути, как в случае FileNew) или, считанное из только для чтения документа, то логика OnFileSave выступает в качестве команды ID_FILE_SAVE_AS и запросит подтверждение, что пользователь подал новое имя файла.Фактический процесс открытия файла и внесение сохранение производится, пока виртуальная функция OnSaveDocument.

    2 Общих причины настраивать ID_FILE_SAVE.Для документов, которые не сохраняют, просто удалите пункты меню и кнопки панели инструментов ID_FILE_SAVE из пользовательского интерфейса.Также убедитесь, что никогда не измененные документ (т е никогда не вызывайте CDocument::SetModifiedFlag) и границы никогда не будут приводить к документу должны быть сохранены.Для документов, которые сохраняют в расположения, отличного от файла на диске, определение новой команды для данной операции.

    В случае COleServerDoc, ID_FILE_SAVE используется как для сохранения файла (для обычных документов), так и для обновления файла (для внедренных документов).

    Если данные документа хранятся в отдельных файлах на диске, но нежелательно использовать по умолчанию CDocument реализация сериализации необходимо переопределить CDocument::OnSaveDocument вместо OnFileSave.

  • ID_FILE_SAVE_AS сохраняет текущий документ под другим именем файла.

    Реализация CDocument::OnFileSaveAs использовали одну и ту же процедуру вспомогательный метод CDocument::DoSave как OnFileSave.Команда OnFileSaveAs обрабатывается так же, как и ID_FILE_SAVE если документы не имели имя файла до, чтобы сохранить.COleServerDoc::OnFileSaveAs реализует логику для сохранения обычный файл данных документа или сохранить документ сервера, представляющий объект OLE, внедренное в каком-либо другом приложении как отдельный файл.

    Если вы настраиваете логика ID_FILE_SAVE, вероятно, потребуется настраивать ID_FILE_SAVE_AS аналогичным образом или операция «сохранить как» не может применяться в документ.Можно удалить пункт меню из строки меню, если он не требуются.

  • ID_FILE_SAVE_COPY_AS сохраняет текущий документ копий под новым именем.

    Реализация COleServerDoc::OnFileSaveCopyAs очень похожа на CDocument::OnFileSaveAs, за исключением того, что объект документа «не вложен в базовый файл выберите сохранить.То есть, если документ был изменен» в памяти «, прежде чем сохранить все равно «будет изменено».Кроме того, эта команда не влияет на имя или имя пути, хранимые в документе.

  • ID_FILE_UPDATE уведомляет контейнер для сохранения внедренного документа.

    COleServerDoc::OnUpdateDocument реализации notifiies просто контейнер, что встраивание должен быть сохранен.Контейнер затем вызывает соответствующие API OLE для сохранения внедренного объекта.

  • ID_FILE_PAGE_SETUP вызывает конкретного приложения диалоговое окно " параметры страницы или структуры.

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

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_FILE_PRINT_SETUP вызывает стандартное диалоговое окно настройки печати.

    ПримечаниеПримечание

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

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

    CWinApp::OnFilePrintSetup имеет очень простую реализацию создать объект CPrintDialog и при вызове функции реализации CWinApp::DoPrintDialog.Таким образом, установку по умолчанию принтера приложения.

    Часто требуется для настройки эта команда для в-документа параметры принтера, которые необходимо сохранить в документе сохраняется.Для этого необходимо добавить обработчик сообщение-сопоставления в классе CDocument, создающий объект CPrintDialog инициализирует его с соответствующими атрибутами принтера (обычно hDevMode и hDevNames), вызовите CPrintDialog::DoModal, и сохранять измененные параметры принтера.Для робастной реализации необходимо найти реализацию CWinApp::DoPrintDialog для обнаружения ошибки и CWinApp::UpdatePrinterSelection для ведения дела с здравыми значениями по умолчанию и отслеживать изменения в масштабе всей системы принтер.

  • ID_FILE_PRINT стандартная печать текущего документа

    ПримечаниеПримечание

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

    Эта команда выводит текущий документ или более правильно, начинается процесс печати, который позволяет вызывать стандартные диалоговое окно печать и выполнение обработчик печати.

    CView::OnFilePrint реализует эту команду и главный цикл печати.Он вызывает виртуальный CView::OnPreparePrinting в запросе пользователя с помощью диалогового окна печати.Затем он готовит контроллер домена вывода, чтобы перейти к принтеру, открывает диалоговое окно хода выполнения печати (AFX_IDD_PRINTDLG) и отправляет избежать StartDoc на принтер.CView::OnFilePrint также содержит страница-ориентированный основой цикла печати.Для каждой страницы, он вызывает виртуальный CView::OnPrepareDC за помощью escape-последовательности по StartPage и вызов виртуального CView::OnPrint для данной страницы.По завершении, виртуальный CView::OnEndPrinting вызывается и диалоговое окно хода выполнения печати закрыто.

    Архитектура печати MFC разработана к обработчику различными способами для печати и предварительного просмотра.Обычно найдете различные функции CView overridable необходимых для всех страница-ориентированных печати задач.Только в случае приложения, использующего принтер для вывода ориентированного non-страницей, если нужно заменить реализацию ID_FILE_PRINT.

  • ID_FILE_PRINT_PREVIEW, входят в режим предварительного просмотра для текущего документа.

    ПримечаниеПримечание

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

    CView::OnFilePrintPreview запускает режим предварительного просмотра путем вызова документированная вспомогательная функция CView::DoPrintPreview.CView::DoPrintPreview главный обработчик для цикла предварительного просмотра, как OnFilePrint главный обработчик для цикла печати.

    Операция предварительного просмотра можно настраивать различными способами, передавая различные параметры в DoPrintPreview.Пример см. в Техническая примечание 30, обсуждаются некоторые детали предварительного просмотра, а также настраивать его.

  • Диапазон ID_FILE_MRU_FILE1…**FILE16   ** a идентификаторы команд для файла MRU list.

    CWinApp::OnUpdateRecentFileMenu обработчик пользовательского интерфейса команды обновления, одно из предварительного ON_UPDATE_COMMAND_UI использует механизм.В конкретном ресурсе меню, необходимо указать только один пункт меню с идентификатором ID_FILE_MRU_FILE1.Изначально, что пункт меню остается заблокирован.

    По мере роста список MRU нескольких пунктов меню добавляются в список.Реализация CWinApp стандарта по умолчанию имеет стандартного предела 4 недавно используемых файлов.Значения по умолчанию можно установить или изменить путем вызова CWinApp::LoadStdProfileSettings с большим или меньшим значением.Список MRU хранится в ini-файле приложения.Список загружен в функции InitInstance приложения при вызове LoadStdProfileSettings, и сохраняется, когда приложение ".Обработчик пользовательского интерфейса команды обновления MRU также преобразование абсолютные пути относительным к пути для отображения в меню файл.

    CWinApp::OnOpenRecentFile обработчик ON_COMMAND, который выполняет фактическую команду.Он просто получает имя файла из списка MRU и вызывает CWinApp::OpenDocumentFile, который делает всю работу открытие файла и обновить список MRU.

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

  • ID_EDIT_CLEAR очищает текущее выделение

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды с помощью CEdit::Clear.Команда заблокирована, если текущее выделение.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_CLEAR_ALL очищает весь документ.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.См. пример РИСОВАННАЯ КРИВАЯ MFC консультационную для реализации примера.

  • ID_EDIT_COPY копирует текущее выделение в буфер обмена.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды, которая в данный момент копирует выделенный текст в буфер обмена как CF_TEXT с помощью CEdit::Copy.Команда заблокирована, если текущее выделение.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_CUT вырезает текущее выделение в буфер обмена.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды, которая в данный момент вырезает выделенный текст в буфер обмена как CF_TEXT с помощью CEdit::Cut.Команда заблокирована, если текущее выделение.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_FIND начинает операцию поиска, открывает диалоговое окно поиска modeless.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды, которая вызывает функцию OnEditFindReplace вспомогательный метод реализации для использования и хранить предыдущая найти и заменить переменные закрытых реализации с дверях параметров.Класс CFindReplaceDialog используется для управления безрежимное диалоговое окно для вывода пользователю сообщения о необходимости.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_PASTE вставляет текущее содержимое буфера обмена.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды, которая копирует текущие данные буфера обмена, заменив выделенный текст с помощью CEdit::Paste.Команда заблокирована, если CF_TEXT в буфере обмена.

    COleClientDoc просто предоставляет обработчик пользовательского интерфейса команды обновления для данной команды.Если буфер обмена не содержит embeddable элемент или объект OLE, то команда будет заблокирована.Ответственность за написать обработчик фактической команды сделать фактический вставить.Если ваше приложение OLE может также вставить другие форматы, необходимо предоставить собственный обработчик пользовательского интерфейса команды обновления в представлении или документе (т е расположения до COleClientDoc в маршрутизации целевого объекта команды).

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

    Для замены стандартная реализация используйте OLE COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK вставляет ссылку из текущего содержимого буфера обмена.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    COleDocument просто предоставляет обработчик пользовательского интерфейса команды обновления для данной команды.Если буфер обмена не содержит linkable элемент или объект OLE, то команда будет заблокирована.Ответственность за написать обработчик фактической команды сделать фактический вставить.Если ваше приложение OLE может также вставить другие форматы, необходимо предоставить собственный обработчик пользовательского интерфейса команды обновления в представлении или документе (т е расположения до COleDocument в маршрутизации целевого объекта команды).

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

    Для замены стандартная реализация используйте OLE COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL вставляет текущее содержимое буфера обмена с параметрами.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.MFC не предоставляет это диалоговое окно.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_REPEAT повторяющихся последняя операция.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды прохождения последней операции поиска.Закрытые переменные используются для реализации последней поиска.Команда заблокирована, если не удается выполнить операцию синхронного поиска.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_REPLACE начинает операцию замены, открывает диалоговое окно modeless заменяет.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды, которая вызывает функцию OnEditFindReplace вспомогательный метод реализации для использования и хранить предыдущая найти и заменить переменные закрытых реализации с дверях параметров.Класс CFindReplaceDialog используется для управления безрежимное диалоговое окно, в котором пользователю предлагается.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_SELECT_ALL выделяет весь документ.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды, которая выделяет весь текст в документе.Команда заблокирована, если текст.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_UNDO отменяет последнюю операцию.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    CEditView предоставляет реализацию этой команды с помощью CEdit::Undo.Команда заблокирована, если CEdit::CanUndo возвращает значение false.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_EDIT_REDO вернет последняя операция.

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для каждого CView- это производный класс.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_WINDOW_NEW открыть другое окно в активном документе.

    CMDIFrameWnd::OnWindowNew мощную реализует эту функцию с помощью шаблонов документов для текущего документа для создания другой кадр, содержащая другое представление текущего документа.

    Как и большинство несколько команд меню в окне интерфейса MDI, команда заблокирована, если отсутствует активная дочернее окно MDI.

    Настройка данного обработчика команды не рекомендуется.Если необходимо обеспечить команду, которая создает дополнительные представления или фрейма окна, возможно, будет лучше с изобретать собственную команду.Можно скопировать код из CMDIFrameWnd::OnWindowNew и изменить его на конкретный кадр и просмотр классов в любить.

  • ID_WINDOW_ARRANGE упорядочение значков в нижней части окна MDI.

    CMDIFrameWnd реализует эту стандартную команду MDI в функции OnMDIWindowCmd вспомогательный метод реализации.Это вспомогательный метод сопоставляет идентификаторы команд для внесения окон MDI и поэтому может совместно использовать много кода.

    Как и большинство команд меню окно MDI, команда заблокирована если активное дочернее окно MDI.

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

  • ID_WINDOW_CASCADE каскадирует окна поэтому они перекрываются.

    CMDIFrameWnd реализует эту стандартную команду MDI в функции OnMDIWindowCmd вспомогательный метод реализации.Это вспомогательный метод сопоставляет идентификаторы команд для внесения окон MDI и поэтому может совместно использовать много кода.

    Как и большинство команд меню окно MDI, команда заблокирована если активное дочернее окно MDI.

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

  • Окна печати мозаику ID_WINDOW_TILE_HORZ по горизонтали.

    Эта команда реализована в CMDIFrameWnd как ID_WINDOW_CASCADE, за исключением того, что другое сообщение windows MDI используется для операции.

    Необходимо выбрать по умолчанию ориентация напечатать мозаику для приложения.Это можно сделать путем изменения идентификатор пункта меню «печать» мозаику окна или ID_WINDOW_TILE_HORZ или ID_WINDOW_TILE_VERT.

  • Окна печати мозаику ID_WINDOW_TILE_VERT по вертикали.

    Эта команда реализована в CMDIFrameWnd как ID_WINDOW_CASCADE, за исключением того, что другое сообщение windows MDI используется для операции.

    Необходимо выбрать по умолчанию ориентация напечатать мозаику для приложения.Это можно сделать путем изменения идентификатор пункта меню «печать» мозаику окна или ID_WINDOW_TILE_HORZ или ID_WINDOW_TILE_VERT.

  • Интерфейс клавиатуры ID_WINDOW_SPLIT с разделителем.

    CView обрабатывает эту команду для реализации CSplitterWnd.Если представление части окна разделитель, то эта команда в функции CSplitterWnd::DoKeyboardSplit делегатов реализации.Это установит разделителем находится в режиме, который позволяет пользователям ввода к разбиению или unsplit окно-разделитель.

    Эта команда заблокирована, если представление отсутствует в разделителя.

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

  • ID_APP_ABOUT вызывает диалоговое окно о программе.

    Отсутствует стандартная реализация приложения о программе.По умолчанию AppWizard-созданное приложение создает пользовательский класс диалогового окна приложения и использует его в качестве около окна.AppWizard также записывает тривиальный обработчик команды, который обрабатывает эту команду и вызывает диалоговое окно.

    Почти всегда будет реализации этой команды.

  • Выходные данные ID_APP_EXIT приложение.

    CWinApp::OnAppExit обрабатывает эту команду, отправляя сообщение WM_CLOSE в главное окно приложения.Стандартный завершение работы приложения (пробуждая для пакостных файлов и т п), обрабатываются в реализации CFrameWnd.

    Настройка данного обработчика команды не рекомендуется.Переопределение CWinApp::SaveAllModified или логику CFrameWnd заключительная рекомендуется.

    Если решено реализовать эту команду, то рекомендуется использовать это позволяет идентификатор команды.

  • ID_HELP_INDEX перечислены разделы Справки из файла .HLP.

    ПримечаниеПримечание

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

    CWinApp::OnHelpIndex обрабатывает эту команду тривиальн вызвать CWinApp::WinHelp.

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

  • Отображает справку ID_HELP_USING описывается использование справки.

    ПримечаниеПримечание

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

    CWinApp::OnHelpUsing обрабатывает эту команду тривиальн вызвать CWinApp::WinHelp.

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

  • Режим справки SHIFT-F1 ID_CONTEXT_HELP ввод.

    ПримечаниеПримечание

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

    CWinApp::OnContextHelp обрабатывает эту команду, устанавливая курсор режима справки, введя модальный цикл и ждать, когда пользователь для выбора окна для получения справки.Пример см. в Техническая примечание 28 дополнительные сведения о реализации Справки MFC.

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

  • ID_HELP предоставляет справку в текущем контексте

    ПримечаниеПримечание

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

    CWinApp::OnHelp обрабатывает эту команду, получая правильный контекст справки для контекста текущего приложения.Это обрабатывает простое справки F1, справку в окнах сообщений и т дПример см. в Техническая примечание 28 дополнительные сведения о реализации справки MFC.

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

  • Справка по умолчанию для контекста отображает ID_DEFAULT_HELP

    ПримечаниеПримечание

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

    Эта команда обычно сопоставляется с CWinApp::OnHelpIndex.

    Отдельный обработчик команды может быть предоставлено если необходимо различать справка по умолчанию и индексом Справки.

  • ID_NEXT_PANE переходит к следующей области

    CView обрабатывает эту команду для реализации CSplitterWnd.Если представление части окна разделитель, то эта команда в функции CSplitterWnd::OnNextPaneCmd делегатов реализации.Активное представление перемещается к следующей области в разделителя.

    Эта команда заблокирована, если представление отсутствует в разделителя или нет в панель, которую необходимо перейти к.

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

  • Переходит к предыдущей панели ID_PREV_PANE

    CView обрабатывает эту команду для реализации CSplitterWnd.Если представление части окна разделитель, то эта команда в функции CSplitterWnd::OnNextPaneCmd делегатов реализации.Это перемещает активное представление к предыдущей области в разделителя.

    Эта команда заблокирована, если представление отсутствует в разделителя или нет предыдущая область, которую необходимо перейти к.

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

  • ID_OLE_INSERT_NEW вставляет новый объект OLE

    В настоящее время нет стандартная реализация для данной команды.Необходимо реализовать для CView- это производный класс для вставки новых элемент OLE/объект в текущее выделение.

    Все клиентские приложения OLE должны реализовывать эту команду.AppWizard с параметром создает OLE каркасная реализация OnInsertObject в классе представления, необходимо завершить.

    См. пример ObjectName примеры MFC OLE для полной реализации этой команды.

  • OLE ID_OLE_EDIT_LINKS изменяет ссылки

    COleDocument обрабатывает эту команду с помощью MFC-обеспечило реализация стандартного диалогового окна ссылок OLE.Реализация этого диалогового окна осуществляется доступ через класс COleLinksDialog.Если текущий документ не содержит ни одной связи, то команда заблокирована.

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

  • ID_OLE_VERB_FIRST… ПОСЛЕДНЕЕ диапазон идентификатор команды OLE

    COleDocument использует этот диапазон идентификатор команды для команд, поддерживаемых в настоящее время выбранными ЯВЛЯЕТСЯ элементом или объектом.Это должно быть диапазоном, поскольку заданный элемент OLE и тип объекта могут поддерживать ноль или более пользовательских команд.В меню приложения, необходимо наличие одного пункта меню с идентификатором ID_OLE_VERB_FIRST.При запуске программа будет меню будет обновлено с соответствующим описанием команды меню (или всплывающим меню с множества команд).Элемент управления меню обрабатывается OLE AfxOleSetEditMenu, сделанные в обработчике пользовательского интерфейса команды обновления для данной команды.

    Никакие явные обработчиков команд для обработки каждое из идентификатор команды в этом диапазоне.COleDocument::OnCmdMsg при переопределении в ловушке все идентификаторы команд в этом диапазоне, преобразует их в число команд нуля и запускает сервер для этой команды (с использованием COleClientItem::DoVerb).

    Не рекомендуется использовать настройку или другая использование этого диапазона идентификатор команды.

  • ID_VIEW_TOOLBAR переключает панель инструментов и

    CFrameWnd обрабатывает эту команду и обработчик пользовательского интерфейса обновление-команды переключение отображается состояние панели инструментов.Панель инструментов должна быть дочерним окном кадра с идентификатором дочернего окна AFX_IDW_TOOLBAR.Обработчик команд, фактически переключает видимость окна панели инструментов.CFrameWnd::RecalcLayout используется для перерисовывать окно фрейма с панелью инструментов в своем новом состоянии.Обработчик пользовательского интерфейса обновление-команды проверяет пункт меню если панель инструментов отображается.

    Настройка данного обработчика команды не рекомендуется.Если необходимо добавить дополнительные панели инструментов, появится необходимость клонирования и изменять обработчик команд и обработчик пользовательского интерфейса обновление-команды для данной команды.

  • Переключает строка состояния on и ID_VIEW_STATUS_BAR

    Эта команда реализована в CFrameWnd как ID_VIEW_TOOLBAR, за исключением того, что используется другое идентификатор дочернего окна (AFX_IDW_STATUS_BAR).

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

Несколько стандартных идентификаторов команд используются в качестве признаков в строках состояния.Они используют один и тот же механизм обработки обновление-команды пользовательского интерфейса для отображения их текущего визуальные состояния во время простоя приложения.Поскольку они не могут быть выбраны пользователем (то есть нельзя отправить панели строки состояния), а затем его нет смысла использовать обработчик для этих ON_COMMAND идентификаторы команд.

  • ID_INDICATOR_CAPS : индикатор клавиши фиксации заглавного регистра.

  • ID_INDICATOR_NUM : Индикатор NUM lock.

  • ID_INDICATOR_SCRL : индикатор блокировки SCRL.

  • ID_INDICATOR_KANA : Индикатор блокировки японской азбуки (применимый только к системам японским).

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

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

  • ID_INDICATOR_EXT : EXT завершить выберите индикатор.

  • Индикатор strike ID_INDICATOR_OVR : OV e R.

  • ID_INDICATOR_REC : REC ording индикатор.

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

Если решено реализовать эти индикаторы, то рекомендуется использовать эти идентификаторы автоматически индикатора и обслуживания упорядочение индикаторов в строке состояния (то есть в следующем порядке: EXT, КОНЕЦ, SCRL, NUM, OVR, РЕКОМЕНДУЕТСЯ).

См. также

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

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

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