Меню и ресурсы (OLE)
Эта группа статей объясняет использование меню и ресурсов в приложениях документов OLE MFC.
Визуальное редактирование OLE устанавливает дополнительные требования к меню и другим ресурсам, предоставляемым приложениями документов OLE, так как существует ряд режимов, в которых можно запускать и использовать приложения контейнера и сервера (компонента). Например, полносерверное приложение может работать в любом из следующих трех режимов:
Автономный.
Вместо этого для редактирования элемента в контексте контейнера.
Откройте элемент за пределами контекста контейнера, часто в отдельном окне.
Для этого требуется три отдельных макета меню, по одному для каждого возможного режима приложения. Таблицы акселератора также необходимы для каждого нового режима. Приложение-контейнер может или не поддерживает активацию на месте; Если это так, он нуждается в новой структуре меню и связанных таблицах акселераторов.
Для активации на месте требуется, чтобы приложения контейнера и сервера согласовывались для пространства меню, панели инструментов и строки состояния. Все ресурсы должны быть разработаны с учетом этого. В статье "Меню и ресурсы: слияние меню" подробно рассматривается этот раздел.
Из-за этих проблем приложения OLE-документов, созданные с помощью мастера приложений, могут иметь до четырех отдельных меню и ресурсов таблиц акселератора. Они используются по следующим причинам:
Имя ресурса | Использование |
---|---|
IDR_MAINFRAME | Используется в приложении MDI, если файл не открыт или в приложении SDI независимо от открытых файлов. Это стандартное меню, используемое в приложениях, отличных от OLE. |
<ТИП IDR_project> | Используется в приложении MDI, если файлы открыты. Используется при выполнении автономного приложения. Это стандартное меню, используемое в приложениях, отличных от OLE. |
<TYPE_SRVR_IP IDR_project> | Используется сервером или контейнером при открытии объекта. |
<TYPE_SRVR_EМБ IDR_проекта> | Используется серверным приложением, если объект открыт без использования активации на месте. |
Каждое из этих имен ресурсов представляет меню и, как правило, таблицу акселератора. Аналогичную схему следует использовать в приложениях MFC, которые не создаются с помощью мастера приложений.
В следующих статьях рассматриваются темы, связанные с контейнерами, серверами и слиянием меню, необходимыми для реализации активации на месте: