Меню и ресурсы. Добавление контейнеров
В этой статье описываются изменения, которые необходимо вносить в меню и другие ресурсы в приложении контейнера визуального редактирования.
В приложениях контейнеров необходимо внести два типа изменений: изменения существующих ресурсов для поддержки визуального редактирования OLE и добавления новых ресурсов, используемых для активации на месте. Если вы используете мастер приложений для создания приложения контейнера, эти действия будут выполнены для вас, но для них может потребоваться некоторая настройка.
Если мастер приложений не используется, может потребоваться просмотреть OCLIENT. RC- скрипт ресурса для примера приложения OCLIENT, чтобы узнать, как реализуются эти изменения. См. пример OCLIENT OLE MFC.
В этой статье рассматриваются следующие темы:
Добавление меню контейнера
В меню "Изменить" необходимо добавить следующие элементы:
Товар | Назначение |
---|---|
Вставка нового объекта | Открывает диалоговое окно "Объект вставки OLE" для вставки связанного или внедренного элемента в документ. |
Ссылка на вставку | Вставьте ссылку на элемент в буфер обмена в документ. |
OLE Verb | Вызывает основную команду выбранного элемента. Текст этого элемента меню изменяется, чтобы отразить основную команду выбранного элемента. |
Ссылки | Открывает диалоговое окно "Изменение ссылок OLE", чтобы изменить существующие связанные элементы. |
Помимо изменений, перечисленных в этой статье, исходный файл должен содержать AFXOLECL. RC, необходимый для реализации библиотеки классов Microsoft Foundation. Вставить новый объект является единственным обязательным дополнением меню. Другие элементы можно добавить, но перечисленные здесь наиболее распространенные.
Необходимо создать новое меню для приложения контейнера, если вы хотите поддерживать активацию на месте содержащихся элементов. Это меню состоит из одного и того же меню "Файл" и всплывающих меню окна, используемых при открытии файлов, но между ними размещены два разделителя. Эти разделители используются для указания того, где сервер (компонент) элемент (приложение) должен размещать свои меню при активации. Дополнительные сведения об этом методе объединения меню см. в разделе "Меню и ресурсы: слияние меню".
Дополнения таблиц акселератора контейнеров
При поддержке активации на месте необходимы небольшие изменения в ресурсах таблицы акселератора приложения контейнера. Первое изменение позволяет пользователю нажимать клавишу ESCAPE (ESC), чтобы отменить режим редактирования на месте. Добавьте следующую запись в основную таблицу акселераторов:
Идентификатор | Ключ | Тип |
---|---|---|
ID_CANCEL_EDIT_CNTR | VK_ESCAPE | VIRTKEY |
Во-вторых, необходимо создать новую таблицу акселератора, соответствующую новому ресурсу меню, созданному для активации на месте. Эта таблица содержит записи для меню "Файл" и "Окно" в дополнение к приведенной выше записи VK_ESCAPE. В следующем примере показана таблица акселераторов, созданная для активации на месте в примере контейнера MFC:
Идентификатор | Ключ | Тип |
---|---|---|
ID_FILE_NEW | CTRL+N | VIRTKEY |
ID_FILE_OPEN | CTRL + O | VIRTKEY |
ID_FILE_SAVE | CTRL+S | VIRTKEY |
ID_FILE_PRINT | CTRL + P | VIRTKEY |
ID_NEXT_PANE | VK_F6 | VIRTKEY |
ID_PREV_PANE | SHIFT+VK_F6 | VIRTKEY |
ID_CANCEL_EDIT_CNTR | VK_ESCAPE | VIRTKEY |
Добавление строковых таблиц для приложений контейнеров
Большинство изменений в строковых таблицах для приложений-контейнеров соответствуют дополнительным элементам меню, упоминание добавленным в меню контейнеров. Они предоставляют текст, отображаемый в строке состояния при отображении каждого элемента меню. Например, ниже приведены записи строковых таблиц, которые создает мастер приложений:
ИД | Строка |
---|---|
IDP_OLE_INIT_FAILED | Сбой инициализации OLE. Убедитесь, что библиотеки OLE являются правильной версией. |
IDP_FAILED_TO_CREATE | Не удалось создать объект. Убедитесь, что объект введен в системный реестр. |