Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ваша ответственность за работу с командами ограничена подключением карты сообщений между командами и их функциями обработчика, задачей, для которой используется мастер классов MFC. Также необходимо написать код для обработчиков команд.
Сообщения Windows обычно отправляются в главное окно фрейма, но затем сообщения команд направляются в другие объекты. Платформа направляет команды через стандартную последовательность объектов, предназначенных для команд, одна из которых, как ожидается, будет иметь обработчик для команды. Каждый объект, предназначенный для команды, проверяет карту сообщений, чтобы узнать, может ли она обрабатывать входящее сообщение.
Классы команд и целевых объектов проверяют свои карты сообщений в разное время. Как правило, класс перенаправляет команду к некоторым другим объектам, чтобы дать им первую возможность обработать команду. Если ни один из этих объектов не обрабатывает команду, исходный класс проверяет собственную карту сообщений. Затем, если он не может предоставить обработчик самостоятельно, он может направить команду в другие целевые объекты команд. В таблице "Стандартный командный маршрут " ниже показано, как каждая из классов структуризирует эту последовательность. Общий порядок, в котором целевой объект команды направляет команду:
Для текущего активного дочернего объекта command-target.
Для себя.
Для других командных целей.
Насколько дорог этот механизм маршрутизации по сравнению с тем, что делает ваш обработчик в ответ на команду, стоимость маршрутизации низка. Помните, что платформа создает команды только при взаимодействии пользователя с объектом пользовательского интерфейса.
Стандартный командный маршрут
| Когда объект этого типа получает команду. . . | Он предоставляет себе и другим объектам, предназначенным для команд, возможность обрабатывать команду в следующем порядке: |
|---|---|
Окно фрейма MDI (CMDIFrameWnd) |
1. Активный CMDIChildWnd2. Это окно фрейма 3. Приложение ( CWinApp объект) |
Окно фрейма документа (CFrameWnd, CMDIChildWnd) |
1. Активное представление 2. Это окно фрейма 3. Приложение ( CWinApp объект) |
| Просмотреть | 1. Этот вид 2. Документ, присоединенный к представлению |
| Документ | 1. Этот документ 2. Шаблон документа, присоединенный к документу |
| Диалоговое окно | 1. Это диалоговое окно 2. Окно, содержащее диалоговое окно 3. Приложение ( CWinApp объект) |
Где нумерованные записи во втором столбце предыдущей таблицы упоминают другие объекты, такие как документ, см. соответствующий элемент в первом столбце. Например, когда вы читаете во втором столбце, что представление пересылает команду в свой документ, посмотрите запись "Документ" в первом столбце, чтобы проследить дальнейшую маршрутизацию.