容器:实现容器

本文概述实现的容器方法并将对提供有关实现的容器的详细说明的其他文章。它还列出了可能需要实现并描述这些功能的文章的一些选项 OLE 功能。

准备您的 CWinApp 派生的类

  1. 通过调用 InitInstance 成员函数的 AfxOleInit 初始化 OLE 库。

  2. 调用 InitInstanceCDocTemplate::SetContainerInfo 分配菜单,然后快捷键资源使用了一个嵌入项何时激活的就地。有关本主题的更多信息,请参见 激活

,当使用 MFC 应用程序向导创建容器应用程序时,这些功能自动为您提供。创建 MFC EXE 程序参见。

准备您的视图类

  1. keep track of 通过维护指针选定项列表或指针,如果支持多重选择,对于选定的项。您的 OnDraw 函数必须绘制任何 OLE 项。

  2. 重写 IsSelected 检查该项传递给它的当前是否已选择。

  3. 实现一个 OnInsertObject 消息处理程序显示 插入对象 对话框。

  4. 实现一个 OnSetFocus 消息处理程序从视图调用焦点切换到一个就地活动的 OLE 嵌入项。

  5. 实现一个 OnSize 消息处理程序通知 OLE 嵌入项它需要更改其矩形的大小反映更改其包含的意图。

由于这些函数的实现从一个应用程序发生显着更改为下,应用程序向导仅提供一个基本的实现。您可能需要自定义这些函数获取应用程序正常工作。有关此示例,请参见 容器 示例。

处理嵌入的资源和链接的项目

  1. COleClientItem派生类。此类对象表示嵌入或与您的 OLE 链接文档的项目。

  2. 重写 OnChangeOnChangeItemPositionOnGetItemPosition。这些函数处理大小,定位和修改嵌入的资源和链接的项目。

应用程序向导将派生您的类,但是,您可能需要重写 OnChange 和其他功能列表与其在上一过程中的步骤 2。,因为这些函数中实现具有一个应用程序不同到下,主干实现需要适用于大多数应用程序自定义。在此操作的示例,请参见 MFC 示例 DRAWCLI容器

必须将许多的项添加到容器应用程序的菜单结构支持 OLE。有关这些内容的更多信息,请参见 菜单和资源:添加容器

您可能还需要支持某些在容器应用的以下功能:

  • 就地激活,编辑嵌入项。

    有关更多信息,请参见 激活

  • OLE 项的创建将拖放选择从服务器应用程序。

    有关更多信息,请参见 拖放 (OLE)

  • 嵌入对象或组合容器/服务器应用的链接。

    有关更多信息,请参见 容器:高级功能

请参见

概念

容器

容器:客户端项目