本文介绍需要在视觉编辑容器应用程序中对菜单和其他资源进行更改。
在容器应用程序中,需要进行两种类型的更改:修改现有资源以支持 OLE 视觉编辑和添加用于就地激活的新资源。 如果使用应用程序向导创建容器应用程序,这些步骤将为你完成,但它们可能需要一些自定义。
如果不使用应用程序向导,可能需要查看 OCLIENT。RC 是 OCLIENT 示例应用程序的资源脚本,用于了解如何实现这些更改。 请参阅 MFC OLE 示例 OCLIENT。
本文中介绍的主题包括:
容器菜单添加项
必须将以下项添加到“编辑”菜单:
条目 | 目的 |
---|---|
插入新对象 | 打开“OLE 插入对象”对话框,将链接或嵌入的项插入文档中。 |
粘贴链接 | 将剪贴板上项的链接粘贴到文档中。 |
OLE 谓词 | 调用所选项的主谓词。 此菜单项的文本将更改以反映所选项的主要谓词。 |
链接 | 打开“OLE 编辑链接”对话框以更改现有链接项。 |
除了本文中列出的更改之外,源文件还必须包含 AFXOLECL。RC,这是Microsoft基础类库实现所必需的。 “插入新对象”是唯一必需的菜单添加项。 可以添加其他项,但此处列出的项最为常见。
如果要支持就地激活包含项,则必须为容器应用程序创建新菜单。 此菜单由打开文件时使用的同一“文件”菜单和“窗口”弹出菜单组成,但两者之间有两个分隔符。 这些分隔符用于指示服务器(组件)项(应用程序)在激活时应放置其菜单的位置。 有关此菜单合并技术的详细信息,请参阅 菜单和资源:菜单合并。
容器应用程序加速器表添加项
如果支持就地激活,则需要对容器应用程序的加速器表资源进行少量更改。 第一项更改允许用户按转义键(ESC)取消就地编辑模式。 将以下条目添加到主加速器表:
身份证件 | 密钥 | 类型 |
---|---|---|
ID_CANCEL_EDIT_CNTR | VK_ESCAPE | VIRTKEY |
第二项更改是创建新的快捷键表,该表对应于为就地激活创建的新菜单资源。 除了上述VK_ESCAPE项外,此表还包含“文件和窗口”菜单的条目。 以下示例是在 MFC 示例 CONTAINER 中为就地激活创建的加速器表:
身份证件 | 密钥 | 类型 |
---|---|---|
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 | 未能创建对象。 确保对象在系统注册表中输入。 |