C O leIPFrame W nd
使 用 COleIPFrameWnd 类 作 为 你 的 应 用 程 序 的 现 场 可 编 辑 窗 口 的 基 础 。 该 类 创
建 工 具 条 并 将 其 安 放 在 你 的 容 器 应 用 程 序 的 文 档 窗 口 中 。 当 用 户 调 整 现 场 可 编辑 窗 口 的 大 小 时 , 它 还 处 理 由 一 个 嵌 入 COleResizeBar 对 象 产 生 的 通 知 。
要 获 取 更 多 有 关 使 用 COleIPFrameWnd , 请 参 见 “ V isual C++ 程 序 员 指 南 ” 一书 中 的 “ 激 活 ” 。
#include <afxole.h>
请 参 阅 CFrameWnd
CO leIpFra m eWnd 类 成 员
Construction
COleIPFrameWnd 构 造 一 个 COleIPFrameWnd 对 象
Overridable s OnCreateControlBars 当 激 活 一 个 现 场 可 编 辑 的 项 时 被 框 架 调 用RepositionFrame 由 框 架 调 用 来 改 变 现 场 可 编 辑 窗 口 的 位 置
成 员 函 数
CO leIPFrame W nd::COleIPFrame W nd
COleIPFrameWnd();
说 明
此 函 数 构 造 一 个 COleFrameWnd 对 象 , 并 初 始 化 它 的 现 场 状 态 信 息 , 此 信 息 保存 在 一 个 OLEINPLACEFRAMEINFO 类 型 的 结 构 中 。
要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的
OLEINPLACEFRAMEINFO 。
请 参 阅 COleServerDoc::ActivateInPlace
CO leIPFrame W nd::OnCreateControlBars
virtual BOOL OnCreateControlBars( CWnd* pWndFram e ,CWnd* pWndDoc );
返 回 值
如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 0 ;
参 数
pWndFrame
指 向 包 装 应 用 程 序 的 框 架 窗 口 的 指 针 。
pWndDoc
指 向 包 装 应 用 程 序 的 尾 矿 顶 层 窗 口 的 指 针 。如 果 包 装 应 用 程 序 是 一 个 SDI
应 用 程 序 , 则 该 参 数 可 以 为 NULL 。
说 明
当 一 个 项 因 为 现 场 编 辑 而 被 激 活 时 , 框 架 调 用 OnCreateControlBars 函 数 。 该 函数 的 缺 省 实 现 不 做 任 何 事 情 。 可 以 重 载 该 函 数 , 以 执 行 控 制 条 创 建 时 所 要 求 的任 何 特 定 处 理 。
请 参 阅 COleServerD oc ::ActivateInPlace
CO leIPFrame W nd::RepositionFrame
virtual void RepositionFrame( LPCRECT lpPosRect , LPCRECT lpClipRect );
参 数
lpPosRect
指 向 一 个 RECT 结 构 或 CRect 对 象 的 指 针 , 此 结 构 或 对 象 中 包 含 框 架 窗口 的 当 前 位 置 相 对 于 客 户 区 的 像 素 坐 标 。
lpClipRect
指 向 一 个 RECT 结 构 或 CRect 对 象 的 指 针 , 此 结 构 或 对 象 中 包 含 框 架 窗口 的 当 前 剪 裁 矩 形 相 对 于 客 户 区 的 坐 标 。
说 明
框 架 调 用 RepositionFrame 成 员 函 数 来 布 局 控 制 条 , 并 重 定 位 现 场 可 编 辑 窗 口 , 使 其 全 部 可 见 。
容 器 窗 口 中 控 制 条 的 布 局 不 同 于 非 OLE 框 架 窗 口 执 行 的 布 局 。 非 OLE 框 架 窗口 从 给 定 框 架 窗 口 尺 寸 计 算 控 制 条 和 其 它 对 象 的 位 置 , 它 与 函 数CFrameWnd::Reca lc Layout 调 用 中 的 处 理 相 同 。 客 户 区 是 减 掉 控 制 条 和 其 它 对象 所 占 的 空 间 后 所 剩 的 区 域 。 从 另 一 方 面 讲 , COleIPFrameWnd 窗 口 根 据 给 定客 户 区 来 定 位 工 具 条 。 换 句 话 来 说 , CFrameWnd::Recalc - Layout 的 处 理 是 “从外 至 内 ” , 而 COleFrameWnd::RecalcLayout 的 处 理 是 “ 从 内 至 外 ” 。
请 参 阅 CFrameWnd::RecalcLayout