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