---- 标 准 工 具 条 的 停 靠 控 制
---- VC5.0 应 用 程 序 向 导 生 成 的 框 架 代 码 中, 都 具 有 普 通 工 具 条 的 控 制 方 法。 正 常 情 况 下 工 具 条 类CToolBar 是 控 制 条 类CControlBar 的 派 生 类, 其 显 示 的 初 始 停 靠 位 置 是 通 过 调 用 继 承 的 函 数CControlBar::EnableDocking(DWORD dwStyle) 来 确 定 的, 其 参 数dwStyle 用 来 指 定 停 靠 的 具 体 位 置, 与 本 文 有 关 的 格 式 如 下( 其 余 请 参 阅VC5.0 的 联 机 文 档):
---- CBRS -ALIGN -TOP 停 靠 在 框 架 窗 口 客 户 区 域 顶 部;
---- CBRS -ALIGN -BOTTOM 停 靠 在 框 架 窗 口 客 户 区 域 底 部;
---- CBRS -ALIGN -LEFT 停 靠 在 框 架 窗 口 客 户 区 域 左 边;
---- CBRS -ALIGN -RIGHT 停 靠 在 框 架 窗 口 客 户 区 域 右 边;
---- CBRS -ALIGN -ANY 停 靠 在 框 架 窗 口 客 户 区 域 任 何 位 置。
---- 在 利 用 应 用 程 序 向 导AppWizard 生 成 的 应 用 程 序 中, 其 控 制 代 码 默 认 的 停 靠 位 置 为CBRS -ALIGN -ANY, 即 允 许 停 靠 在 框 架 窗 口 客 户 区 域 的 任 何 边 上。 工 具 条 在 正 常 显 示 时 停 靠 在 窗 口 客 户 区 域 的 顶 部, 控 制 指 令 为EnableDocking(CBRS_ALIGN_ANY) 或m_wndToolBar. EnableDocking(CBRS_ALIGN_ANY), 注 意 在 实 际 程 序 控 制 时 前 者 必 须 处 于 所 有 其 他 控 制 代 码 的 前 面, 否 则 浮 动 工 具 条 或 特 殊 工 具 条 等 部 分 代 码 可 能 无 法 奏 效。 具 体 控 制 方 法 请 参 考 利 用 应 用 程 序 向 导 生 成 的 任 何 一 个 程 序 实 例 框 架 代 码 部 分 中 建 立 的 函 数ONCREATE()。
---- 应 用 程 序 的 单 文 档 和 多 文 档 的 窗 口 框 架 类 均 由CFrameWnd::EnableDocking(DWORD dwDockS tyle) 来 实 现 的, 其 可 选 的 参 数 除 上 述 五 种 之 外, 还 增 加 了CBRS FLOAT MULTI 参 数, 该 参 数 主 要 是 为 设 计 浮 动 工 具 条 而 增 加 的, 用 来 确 定 一 个 框 架 窗 口 中 允 许 存 在 多 个 浮 动 工 具 条。 同 样 利 用 应 用 程 序 向 导AppWizard 生 成 的 应 用 程 序, 其 默 认 的 停 靠 位 置 也 是CBRS -ALIGN -A NY, 即 允 许 工 具 条 停 靠 在 框 架 窗 口 的 任 何 边 上, 其 默 认 的 初 始 位 置 为 框 架 窗 口 的 顶 部, 即En ableDocking(CBRS_ALIGN_ANY) 或m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY)。
---- 浮 动 工 具 条 的 停 靠 控 制
---- 当 一 个 框 架 窗 口 中 存 在 多 个 标 准 或 浮 动 工 具 条 时, 则 需 要 利 用 函 数void DockControlBar(CC ontrolBar *pBar,UINT nDockBarID=0,LPCRECT lpRect=NULL) 来 确 定 要 控 制 停 靠 位 置 的 工 具 条, 它 也 是CFrameWnd 类 的 成 员 函 数。 其 中 参 数pBar 用 来 指 向 被 控 制 停 靠 位 置 的 工 具 条 对 象 指 针, 参 数nDockBarID 用 来 确 定 工 具 条 停 靠 在 框 架 窗 口 的 哪 条 边 上, 其 控 制 的 具 体 取 值 为:
---- AFX -IDW -DOCKBAR -TOP 停 靠 在 框 架 窗 口 的 顶 部;
---- AFX -IDW -DOCKBAR -BOTTOM 停 靠 在 框 架 窗 口 的 底 部;
---- AFX -IDW -DOCKBAR -LEFT 停 靠 在 框 架 窗 口 的 左 边;
---- AFX -IDW -DOCKBAR -RIGHT 停 靠 在 框 架 窗 口 的 右 边。
---- 当 参 数nDockBarID 的 取 值 为0 时, 则 工 具 条 可 停 靠 在 框 架 窗 口 中 的 任 何 一 个 可 停 靠 的 边 上, 其 默 认 的 初 始 位 置 为 窗 口 顶 部。
---- 并 列 工 具 条 的 停 靠 控 制
---- 很 多 大 型 应 用 程 序 中 都 存 在 将 多 个 工 具 条 同 时 并 列 停 靠 在 某 窗 口 的 某 一 条 边 上 的 情 况。 对 这 种 停 靠 方 法, 可 利 用 上 述 工 具 条 控 制 函 数DockControlBar 的lpRect 参 数, 通 过 控 制 工 具 条 的 停 靠 矩 形 区 域 的 方 法 来 实 现。 实 现 的 函 数 如 下:






