本文介绍需要在视觉编辑服务器(组件)应用程序中对菜单和其他资源进行更改。 服务器应用程序需要对菜单结构和其他资源进行许多添加,因为它可以在以下三种模式之一中启动:独立、嵌入或就地。 如 菜单和资源(OLE) 一文中所述,最多有四组菜单。 这四个都用于 MDI 全服务器应用程序,而只有三个用于微型服务器。 应用程序向导将创建所需的服务器类型的菜单布局。 可能需要某些自定义。
如果不使用应用程序向导,可能需要查看 HIERSVR。RC(MFC 示例应用程序 HIERSVR 的资源脚本)了解这些更改的实现方式。
本文中介绍的主题包括:
服务器菜单添加
服务器(组件)应用程序必须添加菜单资源以支持 OLE 视觉编辑。 在独立模式下运行应用程序时使用的菜单不必更改,但必须在生成应用程序之前添加两个新菜单资源:一个用于支持就地激活,另一个用于支持完全打开的服务器。 这两种菜单资源都由完整服务器和微型服务器应用程序使用。
若要支持就地激活,必须创建一个与在独立模式下运行时使用的菜单资源非常相似的菜单资源。 此菜单中的区别在于“文件和窗口”项(以及处理应用程序的任何其他菜单项,而不是数据)缺失。 容器应用程序将提供这些菜单项。 有关此菜单合并技术的详细信息和示例,请参阅 “菜单和资源:菜单合并”一文。
若要支持完全打开的激活,必须创建与在独立模式下运行时使用的菜单资源几乎完全相同的菜单资源。 此菜单资源的唯一修改是重新编写某些项,以反映服务器正在复合文档中嵌入的项。
除了本文中列出的更改之外,资源文件还需要包括 AFXOLESV。RC,这是Microsoft基础类库实现所必需的。 此文件位于 MFC\Include 子目录中。
服务器应用程序加速器表添加
必须将两个新的加速器表资源添加到服务器应用程序;它们直接与前面所述的新菜单资源相对应。 当服务器应用程序就地激活时,将使用第一个加速器表。 它包含视图的快捷键表中的所有条目,但与“文件和窗口”菜单绑定的条目除外。
第二个表几乎是视图加速器表的确切副本。 服务器 菜单添加中提到的完全打开的菜单中所做的任何并行更改。
有关这些加速器表更改的示例,请将IDR_HIERSVRTYPE_SRVR_IP和IDR_HIERSVRTYPE_SRVR_EMB加速器表与 HIERSVR 中的IDR_MAINFRAME进行比较。MFC OLE 示例 HIERSVR 中包含的 RC 文件。 就地表中缺少文件和窗口加速器,它们的确切副本位于嵌入表中。
服务器应用程序的字符串表添加
服务器应用程序中只需要添加一个字符串表 - 表示 OLE 初始化失败的字符串。 例如,下面是应用程序向导生成的字符串表条目:
身份证件 | 字符串 |
---|---|
IDP_OLE_INIT_FAILED | OLE 初始化失败。 确保 OLE 库是正确的版本。 |
微型服务器添加项
与上面列出的小型服务器相同的新增功能适用于完整服务器。 由于微型服务器无法在独立模式下运行,因此其主菜单要小得多。 应用程序向导创建的主菜单只有一个“文件”菜单,仅包含“退出”和“关于”项。 微型服务器的嵌入式菜单和就地菜单和加速器与完整服务器的菜单和加速器相同。