Стандартные команд ные сообщения
Стандартные команд ные сообщения
Подавляющее большинство приложений, созданных на основе MFC, использует ряд стандартных командных сообщений, как правило соответствующих элементам меню или кнопкам панели управления. К ним относятся командные сообщения для завершения работы приложения, создания нового документа, открытия документа, записанного на диске, сохранения документа на диске, вызова справочной системы, управления текстовым редактором и т. д. За каждым таким командным сообщением зарезервирован отдельный идентификатор.
MFC обеспечивает различный уровень обработки стандартных командных сообщений, начиная от простого резервирования идентификатора и кончая полной его обработкой.
Элемент меню или кнопка панели управления приложения имеет тот же идентификатор, что и командное сообщение. Просмотрите список идентификаторов меню приложения Single. В нем вы найдете многие стандартные команды, описанные ниже.
Ниже коротко описаны наиболее важные стандартные командные сообщения.
Командные сообщения с идентификаторами ID_FILE_
Командные сообщения с идентификаторами ID_FILE_ соответствуют элементам меню File приложений, созданных при помощи средств MFC AppWizard. Обработчики этих сообщений входят в состав различных классов MFC, в том числе CWinApp и CDocument.
Идентификатор командного сообщения Описание ID_FILE_NEW Создать новый документ. Класс CWinApp содержит стандартный обработчик этого сообщения – метод OnFileNew. Если вы желаете его использовать, необходимо поместить в таблицу сообщений главного класса приложения соответствующую макрокоманду (см. приложение Single) ID_FILE_OPEN Открыть документ, записанный на диске. Класс CWinApp содержит стандартный обработчик этого сообщения – метод OnFileOpen. Если вы желаете его использовать, необходимо поместить в таблицу сообщений главного класса приложения соответствующую макрокоманду (см. приложение Single) ID_FILE_CLOSE Закрыть текущий документ. Класс CDocument содержит метод OnFileClose, предназначенный для обработки этого командного сообщения. Метод OnFileClose вызывает метод SaveModified, если документ приложения был изменен, а затем вызывает метод OnCloseDocument ID_FILE_SAVE Сохранить текущий документ. За обработку этого командного сообщения отвечает метод OnSaveDocument класса CDocument ID_FILE_SAVE_AS Сохранить текущий документ под новым именем. За обработку этого командного сообщения отвечает метод OnSaveDocument класса CDocument ID_FILE_SAVE_COPY_AS Сохранить копию текущего документа под новым именем ID_FILE_PAGE_SETUP Вызывает диалоговую панель выбора формата документа ID_FILE_PRINT_SETUP Вызвать диалоговую панель для настройки принтера ID_FILE_PRINT Выполнить печать текущего документа ID_FILE_PRINT_PREVIEW Перейти в режим предварительного просмотра документа перед печатью ID_FILE_MRU_FILE1…FILE16 Открыть один из наиболее часто используемых файлов приложенияКомандные сообщения с идентификаторами ID_EDIT_
Командные сообщения с идентификаторами ID_EDIT_ соответствуют элементам меню Edit приложений, созданных при помощи средств MFC AppWizard. Это меню обычно используется для выполнения различных операций над документом, отображаемым в окне просмотра.
Класс CEditView содержит обработчики для командных сообщений ID_EDIT_. Если вы наследуете класс окна просмотра приложения от базового класса CEditView, то меню Edit будет работать.
Класс CView не содержит стандартных обработчиков для командных сообщений, имеющих идентификаторы ID_EDIT_. Вы должны их реализовать самостоятельно в своем классе окна просмотра.
Идентификатор командного сообщения Описание ID_EDIT_CLEAR Удалить выделенный объект ID_EDIT_CLEAR_ALL Удалить содержимое документа ID_EDIT_COPY Скопировать выделенный объект в универсальный буфер обмена clipboard ID_EDIT_CUT Удалить выделенный объект и записать его в clipboard ID_EDIT_FIND Отобразить на экране диалоговую панель для поиска заданного объекта в документе ID_EDIT_PASTE Вставить в документ содержимое Clipboard ID_EDIT_REPEAT Повторить последнюю операцию ID_EDIT_REPLACE Отобразить диалоговую панель для поиска и замены текста ID_EDIT_SELECT_ALL Выбрать (выделить) весь документ ID_EDIT_UNDO Отменить последнюю операцию ID_EDIT_REDO Выполнить последнюю отмененную операциюКомандные сообщения с идентификаторами ID_WINDOW_
Командные сообщения с идентификаторами ID_WINDOW_ соответствуют элементам меню Window многооконных приложений, созданных при помощи средств MFC AppWizard. Обработка этих командных сообщений возложена на метод OnMDIWindowCmd класса CMDIFrameWnd.
Идентификатор командного сообщения Описание ID_WINDOW_NEW Открыть новое окно с текущим документом ID_WINDOW_ARRANGE Выровнять пиктограммы в нижней части окна MDI ID_WINDOW_CASCADE Выполнить каскадное размещение окон ID_WINDOW_TILE_HORZ Расположить окна рядом по горизонтали ID_WINDOW_TILE_VERT Расположить окна рядом по вертикали ID_WINDOW_SPLIT Разделить окно на две частиКомандные сообщения с идентификаторами ID_APP_
В MFC определены только два командных сообщения с идентификаторами ID_APP_. Они предназначены для завершения приложения и вывода информации о приложении и его авторе.
Идентификатор командного сообщения Описание ID_APP_EXIT Завершить приложение. Данное командное сообщение обрабатывается методом OnAppExit класса CWinApp. Метод OnAppExit передает сообщение WM_CLOSE главному окну приложения ID_APP_ABOUT Отобразить на экране краткую справку о программе – диалоговую панель About. Ни один из классов MFC не выполняет обработки этого сообщения по умолчанию, но MFC AppWizard автоматически создает необходимый для этого программный кодКомандные сообщения с идентификаторами ID_HELP_
Командные сообщения с идентификаторами ID_HELP_ используются справочной системой приложения.
Класс CWinApp содержит методы для обработки командных сообщений, связанных со справочной системой. Если вы используете справочную систему, вы должны сами вызывать соответствующие методы класса CWinApp для обработки командных сообщений ID_HELP_.
MFC AppWizard позволяет создать приложение, имеющее справочную систему. В этом случае MFC AppWizard автоматически создает программный код, необходимый для управления справочной системой.
Идентификатор командного сообщения Описание ID_HELP_INDEX Отобразить список статей из справочной базы данных, записанной в HLP-файле ID_HELP_USING Отобразить подсказку об использовании справочной системы ID_CONTEXT_HELP Перейди в режим контекстной подсказки. Передается также при нажатии комбинации клавиш <Shift+F1> ID_HELP Получить справочную информацию по данному контексту ID_DEFAULT_HELP Получить справочную информацию определенную по умолчанию для данного контекстаКомандные сообщения с идентификаторами ID_VIEW_
Командные сообщения с идентификаторами ID_VIEW_ соответствуют элементам меню View приложений, созданных при помощи средств MFC AppWizard. За обработку командных сообщений ID_VIEW_ отвечает класс CFrameWnd.
Идентификатор командного сообщения Описание ID_VIEW_TOOLBAR Отобразить или скрыть панель управления toolbar ID_VIEW_STATUS_BAR Отобразить или скрыть панель состояния status barОписание стандартных команд и методов, предназначенных для их обработки, вы можете получить из справочной системы Visual C++. В следующих книгах серии “Библиотека системного программиста” мы изучим наиболее важные стандартные командные сообщения более подробно.