В настоящей записке описывается стандартная команда реализованных в 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. Идентификатор строки для этого приглашения меню должны быть теми же, что и Идентификатора команды.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
CWinApp::OnFileNew реализует эту команду по-разному в зависимости от количества шаблонов документов в приложении. Если имеется только один CDocTemplate, CWinApp::OnFileNew будет создан новый документ этого типа, а также надлежащего кадра и просмотр класса.
Если имеется более одной CDocTemplate, CWinApp::OnFileNew будет запрашивать пользователя с диалогом (AFX_IDD_NEWTYPEDLG), давая им выбрать тип документа. Выбранный CDocTemplate используется для создания документа.
Один из общих настроек ID_FILE_NEW – предоставить иной и более широкий выбор графических типов документов. В этом случае можно реализовать свой собственный CMyApp::OnFileNew и поместите его в ваших сообщений карте вместо CWinApp::OnFileNew. Нет необходимости вызывать реализацию базового класса.
Еще одним общим настройки ID_FILE_NEW – предоставить отдельная команда для создания документа каждого типа. В этом случае вам следует определить новые идентификаторы команд, например ID_FILE_NEW_CHART и ID_FILE_NEW_SHEET.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
CWinApp::OnFileOpen имеет очень простая реализация вызова CWinApp::DoPromptFileName после CWinApp::OpenDocumentFile с имя файла или путь файла для открытия. CWinApp осуществление обычной DoPromptFileName появляется стандартное диалоговое окно FileOpen и заполняет его с расширениями файлов, полученные из текущего шаблоны документов.
Один из общих настроек ID_FILE_OPEN — настроить диалоговое окно FileOpen или добавить дополнительные файловые фильтры. Для настройки этого рекомендуется заменить реализацию по умолчанию с вашим собственным FileOpen диалога и вызвать CWinApp::OpenDocumentFile с файла документа или имя пути. Нет необходимости вызывать базовый класс.
CDocument::OnFileClose вызывает CDocument::SaveModified для запроса пользователя сохранить документ, если он был изменен и затем вызывает OnCloseDocument. Закрытие логику, включая уничтожение документа, будет сделано в обычной OnCloseDocument.
Примечание ID_FILE_CLOSE акты отличается от сообщение WM_CLOSE или отправлены в фрейме окна документов команды системы SC_CLOSE . Закрытие окна будет закрыть документ, только если это последний кадр окно, показывающее документ. Закрытие документа с ID_FILE_CLOSE будет не только закрыть документ, но будет закрыть все окна кадра отображается в документе.
Реализация использует вспомогательной подпрограммой CDocument::DoSave , который используется для OnFileSave и OnFileSaveAs. При сохранении документа, который не был сохранен до (то есть, он не имеет имени пути, как за FileNew) или которое было зачитано из документа только для чтения, OnFileSave логика будет действовать как команда ID_FILE_SAVE_AS и попросите пользователя ввести новое имя файла. Фактический процесс открытия файла и делает спасение осуществляется с помощью виртуальной функции OnSaveDocument.
Существует два распространенных причин для настройки ID_FILE_SAVE. Для документов, не сохранять просто удалите кнопки панели инструментов и пункты меню ID_FILE_SAVE из интерфейса пользователя. Также убедитесь, что вы никогда не грязный документа (то есть, никогда не вызов CDocument::SetModifiedFlag), и рамки никогда не будет вызывать необходимо сохранить документ. Для документов, сохраняющие-то за исключением дисковый файл, определить новую команду для выполнения операции.
В случае COleServerDoc ID_FILE_SAVE используется как для сохранения файлов (для обычных документов) и файл обновления (для встраиваемых документов).
Если ваши данные документа хранятся в отдельных дисковых файлов, но вы не хотите использовать по умолчанию CDocument сериализовать осуществления, следует переопределить CDocument::OnSaveDocument вместо того, чтобы OnFileSave.
CDocument::OnFileSaveAs реализация использует же вспомогательной подпрограммой CDocument::DoSave как OnFileSave. OnFileSaveAs команда обрабатывается так же, как ID_FILE_SAVE , если документы было имя файла не до сохранения. COleServerDoc::OnFileSaveAs реализует логику для сохранения файла данных обычного документа или для сохранения документа сервера представляющий объект OLE встроенный в другое приложение как отдельный файл.
Если логика ID_FILE_SAVE, вы возможно захотите настроить ID_FILE_SAVE_AS аналогичным образом или ведения "Сохранить как" может не относятся к вашему документу. Можно удалить элемент меню из строки меню, если она не нужна.
Осуществление COleServerDoc::OnFileSaveCopyAs очень похож на CDocument::OnFileSaveAs, за исключением того, что объект документа не "подключен" файл после сохранения. То есть если в памяти «изменения документа» перед save, он до сих пор «изменен». Кроме того эта команда не влияет на имя пути или название, хранящиеся в документе.
Осуществление COleServerDoc::OnUpdateDocument просто notifiies контейнер, который следует сохранить вложения. Контейнер вызывает на соответствующий OLE API, чтобы спасти внедренный объект.
В настоящее время не существует стандарта для этого диалога, и рамки не имеет по умолчанию реализации этой команды.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
Эта команда вызывает диалоговое окно Стандартные настройки печати, который позволяет пользователю настраивать принтер и настройки для печати по крайней мере этот документ или более всех документов в этом приложении. Вы должны использовать панель управления для изменения параметров принтера по умолчанию для всей системы.
CWinApp::OnFilePrintSetup имеет очень простой реализации для создания объекта CPrintDialog и вызов функции CWinApp::DoPrintDialog реализации. Это устанавливает настройки принтера по умолчанию приложения.
Общие настройки этой команды необходимо разрешить для параметров принтера каждого документа, которые должны быть сохранены с документом при сохранении. Для этого следует добавить обработчик сообщений карты в вашем классе CDocument , который создает объект CPrintDialog , инициализирует его с атрибутами соответствующий принтер (обычно hDevMode и hDevNames), вызовите CPrintDialog::DoModal и сохраните измененные принтера параметры. Для надежной реализации вы должны смотреть на осуществление CWinApp::DoPrintDialog для обнаружения ошибок и CWinApp::UpdatePrinterSelection для решения разумные значения по умолчанию и отслеживания изменений всей системы принтера.
Примечание Необходимо подключиться к вашей CView-производного класса схема сообщений для включения этой функции.
Эта команда печатает текущий документ или более правильно, запускает процесс печати, который включает в себя ссылки на стандартный диалог печати и выполнение печати двигателя.
CView::OnFilePrint реализует эту команду и главный цикл печати. Он вызывает виртуальный CView::OnPreparePrinting для запроса пользователя с диалога печати. Затем готовит выходного постоянного тока для перехода на принтер, появляется диалоговое окно печати прогресса (AFX_IDD_PRINTDLG) и отправляет StartDoc бежать на принтер. Главная страница ориентированный печати цикл содержит также CView::OnFilePrint . Для каждой страницы он вызывает виртуальный CView::OnPrepareDC после стартовой страницы побега и вызова виртуального CView::OnPrint для данной страницы. При полной, вызывается виртуальный CView::OnEndPrinting , и закрытия диалогового окна печати прогресса.
MFC печати Архитектура разработана для подключения разными способами для предварительного просмотра печати и печати. Как правило есть различные CView Переопределяемые функции для любой страницы ориентированный печати задач. Только за приложение, использующее принтер для ориентированного вывода страницы если вы сможете найти необходимость замены реализации ID_FILE_PRINT.
Примечание Необходимо подключиться к вашей CView-производного класса схема сообщений для включения этой функции.
CView::OnFilePrintPreview запускается в режиме предварительного просмотра путем вызова документально вспомогательной функции CView::DoPrintPreview. CView::DoPrintPreview является основным двигателем для предварительного просмотра цикле, так же, как OnFilePrint является главным двигателем для печати петля.
Операция предварительного просмотра можно настроить различными способами, передачи различных параметров в DoPrintPreview. Обратитесь к технической записке 30, который обсуждает некоторые из деталей предварительного просмотра и его настройка.
CWinApp::OnUpdateRecentFileMenu — это обработчик пользовательского Интерфейса команд update, являющегося одним из более передовых видов ON_UPDATE_COMMAND_UI механизма. В меню ресурс необходимо определить только одного меню с ID ID_FILE_MRU_FILE1. Этот пункт меню остается первоначально инвалидов.
Как СРМ список растет, более меню, элементы добавляются в список. В стандартный CWinApp реализации по умолчанию стандартный предел четырех наиболее недавно использовавшихся файлов. Значение по умолчанию можно изменить путем вызова CWinApp::LoadStdProfileSettings с большей или меньшей стоимостью. В приложения хранится список недавно использованных Серверов.Ini-файл. Этот список загружается в функции InitInstance приложения, если вызвать LoadStdProfileSettingsи сохраняется при выходе из приложения. Обработчик пользовательского Интерфейса команд update СРМ также преобразует абсолютные пути относительные пути для отображения в меню Файл.
CWinApp::OnOpenRecentFile — ON_COMMAND обработчик, выполняющий фактического командования. Он просто получает имя файла из списка MRU и вызовы CWinApp::OpenDocumentFile, который делает всю работу открытия файла и обновления списка MRU.
Настройка обработчика этой команды не рекомендуется.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды с помощью CEdit::Clear. Команда недоступна, если нет текущего выделенного фрагмента.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот идентификатор команды. Разделе MFC учебник пример КАРАКУЛИ пример реализации.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды, которая копирует выбранный текст в буфер обмена как CF_TEXT с помощью CEdit::Copy. Команда недоступна, если нет текущего выделенного фрагмента.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды, которая вырезает текущий выделенный текст в буфер обмена как CF_TEXT с помощью CEdit::Cut. Команда недоступна, если нет текущего выделенного фрагмента.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды, которая требует осуществления вспомогательной функции OnEditFindReplace использовать и для предыдущих параметров поиска и замены в частных осуществления переменных. CFindReplaceDialog класс используется для управления безрежимного диалогового окна для пользователя.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды, которая копирует текущих данных буфера обмена, заменить выделенный текст с помощью CEdit::Paste. Команда недоступна, если в буфере обмена нет никаких CF_TEXT.
COleClientDoc просто предоставляет обработчик пользовательского Интерфейса команды update для этой команды. Если буфер обмена не содержит встраиваемый пункт/объект OLE, команда будет отключена. Вы несете ответственность за написание обработчика для фактического команды сделать фактической вставки. Если приложение OLE можно также вставить другие форматы, следует предоставить собственный обработчик пользовательского Интерфейса команд update в вашем представлении или документа (то есть, то прежде чем COleClientDoc в команде целевых маршрутизации).
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
Для замены стандартной реализации OLE, используйте COleClientItem::CanPaste.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
COleDocument просто предоставляет обработчик пользовательского Интерфейса команды update для этой команды. Если буфер обмена не содержит связаны пункт/объект OLE, команда будет отключена. Вы несете ответственность за написание обработчика для фактического команды сделать фактической вставки. Если приложение OLE можно также вставить другие форматы, следует предоставить собственный обработчик пользовательского Интерфейса команд update в вашем представлении или документа (то есть, то прежде чем COleDocument в команде целевых маршрутизации).
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
Для замены стандартной реализации OLE, используйте COleClientItem::CanPasteLink.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса. Это диалоговое окно не предоставляет MFC.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды повторить последнюю операцию поиска. Используются частные осуществления переменные для последнего find. Команда недоступна, если попытки поиска не может.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды, которая требует осуществления вспомогательной функции OnEditFindReplace использовать и для предыдущих параметров поиска и замены в частных осуществления переменных. CFindReplaceDialog класс используется для управления немодальное диалоговое окно, запрашивающее пользователя.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды, которая выделяет весь текст в документе. Команда недоступна, если не содержит текста выбрать.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
CEditView обеспечивает реализацию этой команды с помощью CEdit::Undo. Команда недоступна, если CEdit::CanUndo возвращает ЛОЖЬ.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для каждого CView-производного класса.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
CMDIFrameWnd::OnWindowNew реализует эту мощную функцию, используя шаблон документа текущего документа для создания другой фрейм, содержащий другое мнение в текущем документе.
Как большинство несколько документов интерфейс (MDI) окно меню команд Команда недоступна, если нет никаких активное дочернее окно MDI.
Настройка обработчика этой команды не рекомендуется. Если вы хотите обеспечить команду, которая создает дополнительные представления или фрейм окна, вы, вероятно, будет лучше изобретать свои собственные команды. Можно клонировать код из CMDIFrameWnd::OnWindowNew и изменить его с конкретными рама и представление классов вашей душе.
CMDIFrameWnd реализует эта стандартная команда MDI в осуществлении вспомогательной функции OnMDIWindowCmd. Этот помощник отображает идентификаторы команд MDI-окон сообщений и поэтому используют много кода.
Как и большинство команд меню окна MDI команда недоступна, если нет никаких активное дочернее окно MDI.
Настройка обработчика этой команды не рекомендуется.
CMDIFrameWnd реализует эта стандартная команда MDI в осуществлении вспомогательной функции OnMDIWindowCmd. Этот помощник отображает идентификаторы команд MDI-окон сообщений и поэтому используют много кода.
Как и большинство команд меню окна MDI команда недоступна, если нет никаких активное дочернее окно MDI.
Настройка обработчика этой команды не рекомендуется.
Эта команда выполняется в CMDIFrameWnd так же, как ID_WINDOW_CASCADE, за исключением окнами MDI используется сообщение для операции.
Ориентация по умолчанию плитки должны быть выбраны для вашего приложения. Вы можете сделать это путем изменения Идентификатора для элемента меню «Плитка» окно на ID_WINDOW_TILE_HORZ или ID_WINDOW_TILE_VERT.
Эта команда выполняется в CMDIFrameWnd так же, как ID_WINDOW_CASCADE, за исключением окнами MDI используется сообщение для операции.
Ориентация по умолчанию плитки должны быть выбраны для вашего приложения. Вы можете сделать это путем изменения Идентификатора для элемента меню «Плитка» окно на ID_WINDOW_TILE_HORZ или ID_WINDOW_TILE_VERT.
CView обрабатывает эту команду для реализации CSplitterWnd . Если представление является частью окна разделителя, эта команда будет делегировать осуществление функции CSplitterWnd::DoKeyboardSplit. Это будет место разделителя в режиме, который позволит пользователям клавиатуры разбить или unsplit окно-разделитель.
Эта команда недоступна, если представление не сплиттер.
Настройка обработчика этой команды не рекомендуется.
Нет никакой стандартной реализации для около окна приложения. Создал AppWizard приложение по умолчанию будет создание класса настраиваемого диалогового окна для вашего приложения и использовать его как ваш О поле. AppWizard также написать обработчик тривиальным команды, который обрабатывает эту команду и вызывает диалоговое окно.
Вы почти всегда будет осуществлять эту команду.
CWinApp::OnAppExit обрабатывает эту команду, отправив сообщение WM_CLOSE главное окно приложения. Стандарт, завершение работы приложения (запросы на грязных файлов и так далее) управляется CFrameWnd реализации.
Настройка обработчика этой команды не рекомендуется. Переопределение CWinApp::SaveAllModified или CFrameWnd закрытия логика рекомендуется использовать.
Если вы решите выполнить эту команду, мы рекомендуем вам использовать этот Идентификатор команды.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
CWinApp::OnHelpIndex обрабатывает эту команду, тривиально вызова CWinApp::WinHelp.
Настройка обработчика этой команды не рекомендуется.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
CWinApp::OnHelpUsing обрабатывает эту команду, тривиально вызова CWinApp::WinHelp.
Настройка обработчика этой команды не рекомендуется.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
CWinApp::OnContextHelp обрабатывает эту команду, установив режим курсора справки, введя модального цикла и ожидания пользователя выбрать окно для получения справки о. Обратитесь к технической записке 28 для получения более подробной информации о выполнении помочь MFC.
Настройка обработчика этой команды не рекомендуется.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
CWinApp::OnHelp обрабатывает эту команду, получив правой помощи контекста для текущего контекста приложения. Это обрабатывает простые Справка F1, помощь на окна сообщений и так далее. Обратитесь к технической записке 28 для получения более подробной информации об осуществлении помощи MFC.
Настройка обработчика этой команды не рекомендуется.
Примечание Необходимо подключиться к вашей CWinApp-производного класса схема сообщений для включения этой функции.
Эта команда обычно сопоставляется с CWinApp::OnHelpIndex.
Обработчик различные команды может быть предоставлена в случае различие между по умолчанию справки и справки индекс.
CView обрабатывает эту команду для реализации CSplitterWnd . Если представление является частью окна разделителя, эта команда будет делегировать осуществление функции CSplitterWnd::OnNextPaneCmd. Это будет двигаться активное представление в следующую область в разделителя.
Эта команда недоступна, если представление не разделитель или нет никаких следующую область для перехода к.
Настройка обработчика этой команды не рекомендуется.
CView обрабатывает эту команду для реализации CSplitterWnd . Если представление является частью окна разделителя, эта команда будет делегировать осуществление функции CSplitterWnd::OnNextPaneCmd. Это будет двигаться активное представление к предыдущей области в разделителя.
Эта команда недоступна, если представление не разделитель или нет никаких предыдущей области для перехода к.
Настройка обработчика этой команды не рекомендуется.
В настоящее время нет никакой стандартной реализации для этой команды. Необходимо реализовать для ваших CView-производного класса, чтобы вставить новый элемент/объект OLE в место текущего выделения.
Все клиентские приложения OLE следует выполнить эту команду. AppWizard, с параметром OLE, создаст схему реализации OnInsertObject в вашем классе мнение, которое вам будет нужно заполнить.
Посмотреть пример MFC OLE OCLIENT пример для полного выполнения этой команды.
COleDocument обрабатывает эту команду с помощью MFC-условии реализации стандартного диалога ссылок OLE. Осуществление этого диалога осуществляется с помощью класса COleLinksDialog . Если текущий документ не содержит каких-либо связей, команда отключена.
Настройка обработчика этой команды не рекомендуется.
COleDocument использует этот диапазон ID команды для команд, поддерживаемых в настоящее время выбранный элемент/объект OLE. Это должен быть целый, так как данный тип объекта item OLE может поддерживать ноль или более пользовательских команд. В меню вашего приложения вы должны иметь один пункт меню с Идентификатором ID_OLE_VERB_FIRST. При запуске программы, меню будет обновляться с описание команды меню (или всплывающее меню с многими глаголы). Управление меню OLE управляется AfxOleSetEditMenu, сделано в обновление пользовательского обработчика для этой команды.
Существует нет явной команды обработчика для обработки каждого из Идентификатора команды в этом диапазоне. COleDocument::OnCmdMsg переопределяется для треппинга всех идентификаторов команд в этом диапазоне, превратить их в номера с нуля глагола и запустить на сервере для этого глагола (с COleClientItem::DoVerb).
Настройки или иное использование диапазона ID этой команды не рекомендуется использовать.
CFrameWnd обрабатывает эта команда и команда update пользовательского обработчика для переключения видимое состояние панели инструментов. Панели инструментов должны быть дочернее окно кадра с дочерних окон ID AFX_IDW_TOOLBAR. Обработчик команды фактически переключает видимость окна инструментов. CFrameWnd::RecalcLayout используется для перерисовки фрейма окна с панели инструментов в своем новом состоянии. Команда update UI обработчик проверяет элемент меню при отображении панели инструментов.
Настройка обработчика этой команды не рекомендуется. Если вы хотите добавить дополнительные панели инструментов, следует клонировать и изменять обработчик команды и команды update обработчик пользовательского Интерфейса для этой команды.
Эта команда реализован в CFrameWnd так же, как ID_VIEW_TOOLBAR, за исключением используется Идентификатор другой дочернего окна (AFX_IDW_STATUS_BAR).
Обновление только обработчиков команд
Существует несколько стандартных команд идентификаторов, которые используются в качестве показателей в строках состояния. Эти же команды update UI, механизм обработки для отображения используется их текущее состояние во время простоя приложений. Так как они не могут быть выбраны пользователем (то есть, нельзя нажать панели строки состояния), то это не имеет смысла иметь обработчик ON_COMMAND для них идентификаторы команд.
Все три из них реализованы в CFrameWnd::OnUpdateKeyIndicator, осуществления помощника, который использует Идентификатор команды для сопоставления соответствующего виртуального ключа. Общая реализация включает или отключает (для панелей статуса инвалидов = без текста) CCmdUI объект зависимости ли соответствующий виртуальный ключ заблокирован в данный момент.
Настройка обработчика этой команды не рекомендуется.
В настоящее время нет никакой стандартной реализации для этих показателей.
Если вы решите выполнить эти показатели, мы рекомендуем вам использовать эти идентификаторы индикатор и поддержание упорядочение показателей в строке состояния (то есть, в следующем порядке: EXT, CAP, NUM, SCRL, OVR, РЭЦ).
Технические примечания по номеру |nbsp; Технические примечания по категориям