菜单和资源 (OLE)
本组文章说明菜单和资源在 MFC OLE 文档应用程序中的使用。
OLE 视觉对象编辑对 OLE 文档应用程序提供的菜单和其他资源提出了附加要求,因为可以在许多模式下同时启动和使用容器和服务器(组件)应用程序。 例如,全服务器应用程序可以在以下三种模式中的任何一种模式下运行:
独立。
就地,用于在容器的上下文中编辑项。
打开,用于在其容器上下文之外编辑项,通常在单独的窗口中。
这需要三个单独的菜单布局,每个布局用于应用程序每种可能的模式。 每种新模式也需要快捷键表。 容器应用程序可能支持也可能不支持就地激活;如果支持,则需要一个新的菜单结构和关联的快捷键表。
就地激活要求容器和服务器应用程序必须针对菜单、工具栏和状态栏空间进行协商。 在设计所有资源时必须牢记这一点。 菜单和资源:菜单合并一文详细介绍了此主题。
由于存在这些问题,使用应用程序向导创建的 OLE 文档应用程序最多可以有四个单独的菜单和快捷键表资源。 这些资源的用途如下:
资源名称 | 使用 |
---|---|
IDR_MAINFRAME | 如果未打开任何文件,则在 MDI 应用程序中使用;如果不考虑打开的文件,则在 SDI 应用程序中使用。 这是非 OLE 应用程序中使用的标准菜单。 |
IDR_<project>TYPE | 如果文件已打开,则在 MDI 应用程序中使用。 在应用程序独立运行时使用。 这是非 OLE 应用程序中使用的标准菜单。 |
IDR_<project>TYPE_SRVR_IP | 当对象就地打开时由服务器或容器使用。 |
IDR_<project>TYPE_SRVR_EMB | 如果对象在不使用就地激活的情况下打开,则由服务器应用程序使用。 |
其中每个资源名称都表示一个菜单,通常还表示一个快捷键表。 在未使用应用程序向导创建的 MFC 应用程序中,应使用类似的方案。
以下文章讨论与容器、服务器和实现就地激活所需的菜单合并相关的主题: