CToolBarCtrl - 图1

CToolBarCtrl - 图2返 回

目 录

CToolBarCtrl CToolTipCtrl CTreeCtrl CTreeView CTypedPtrArray CTypedPtrList CTypedPtrMap CUIntArray CUserException C V iew

CWa itCursor C W inApp

C W indowDC C W inThread CWnd CwordArray

MFC 中 的 宏 和 全 局 函 数 、 变 量

宏 、 全 局 函 数 和 全 局 变 量

结 构 、 风 格 、 回 调 函 数 和 消 息 映 射

CToolBarCtrl

CToolBarCtrl 类 提 供 了 W indows 工 具 条 通 用 控 件 的 性 能 。 这 个 控 件 ( 也 就 是CToolBarCtrl 类 ) 只 对 运 行 在 W indows 95 和 W indows NT 3.51 或 更 高 版 本 下 的程 序 来 说 才 是 可 用 的 。

  • 个 W indows 工 具 条 通 用 控 件 是 一 个 矩 形 子 窗 口 , 它 包 含

    一 个 或 多 个 按 钮 。 这些 按 钮 可 以 显 示 一 个 位 图 图 像 , 一 个 字 符 串 , 或 两 者 都 有 。 当 用 户 选 择 一 个 按

钮 时 , 它 向 该 工 具 条 的 属 主 窗 口 发 送 一 条 命 令 消 息 。 通 常 , 工 具 条 中 的 按 钮 对应 于 应 用 程 序 的 菜 单 中 的 项 ; 这 些 按 钮 为 用 户 访 问 一 个 应 用 程 序 的 命 令 提 供 了更 为 直 接 的 方 法 。

CToolBarCtrl 对 象 包 含 几 个 重 要 的 内 部 数 据 结 构 : 一 个 按 钮 图 像 列 表 或 一 个 图像 列 表 , 一 个 按 钮 标 签 字 符 串 列 表 和 一 个 TBBUTTON 结 构 的 列 表 , 该 结 构 使一 个 图 像 和 / 或 字 符 串 与 按 钮 的 位 置 , 风 格 , 主 题 和 命 令 ID 相 关 联 。 这 些 数 据结 构 的 每 一 个 都 由 一 个 从 零 开 始 的 索 引 来 引 用 。在 你 可 以 使 用 一 个 CToolBarCtrl 对 象 之 前 , 你 必 须 设 置 这 些 数 据 结 构 。 字 符 串 列 表 只 能 被 用 作 按 钮 标 签 ; 不 能从 按 钮 中 检 取 字 符 串 。

要 使 用 一 个 CToolBarCtrl 对 象 , 通 常 你 应 该 遵 循 下 面 的 这 些 步 骤 :

  1. 构 造 该 CToolBarCtrl 对 象 。

  2. 调用 Create 来 创 建 W indows 工 具 条 通 用 控 件 并 将 它 与 该

    CToolBarCtrl 对 象连 接 。 通 过 使 用 风 格 来 指 定 工 具 条 的 风 格 , 如 对 一 个 透 明 的 工 具 条 使 用TBSTYLE_ TRANSPARENT , 或 对 一 个 支 持 风 格 按 钮 的 工 具 条 使 用TBSTYLE_DROPDOW N 。

  3. 指 明 你 希 望 按 钮 在 工 具 条 上 如 何 显 示 :

    • 给 按 钮 使 用 位 图 图 像 , 通 过 调 用 AddBitmap 将 按 钮 位

      图 添 加 到 工 具 条 中 。

    • 给 按 钮 使 用 来 自 一 个 图 像 列 表 的 图 像 , 通 过 调 用

      SetImageList ,

SetHotImageList ,或 SetDisabledImageList 来 指 定 图 像 列 表 。

  • 给 按 钮 使 用 字 符 串 标 签 , 通 过 调 用 AddString 和 /或

    AddStrings 来 将 字 符串 添 加 到 工 具 条 中 。

  1. 通 过 调 用 AddButtons 将 按 钮 结 构 添 加 到 工 具 条 中 。

  2. 如 果 你 希 望 在 一 个 不 是 CFrameWnd 的 属 主 窗 口 中 的 工 具

    条 具 有 工 具 提 示 , 则 你 必 须 在 工 具 条 的 属 主 窗 口 中 处 理 TTN_NEEDTEXT 消 息 , 就 像 在CToolBarCtrl : 处 理 工 具 提 示 通 知 中 描 述 的 一 样 。 如 果 工 具 条 的 父 窗 口 是由 CFrameWnd 派 生 而 来 的 , 则 你 不 用 作 任 何 额 外 的 努 力 就 可 以 显 示 工 具提 示 , 因 为 CFrameWnd 提 供 了 一 个 缺 省 的 处 理 函 数 。

  3. 如 果 你 希 望 能 够 让 用 户 定 制 工 具 条 , 则 在 属 主 窗 口 中

    处 理 定 制 通 知 消 息 , 就 像 在 CToolBarCtrl: 处 理 定 制 通 知 中 描 述 的 一 样 。

你 可 以 使 用 SaveState 来 将 一 个 工 具 条 控 件 的 当 前 状 态 保 存 在 注 册 表 中 , 用RestoreState 来 根 据 注 册 表 中 先 前 保 存 的 信 息 恢 复 工 具 条 的 状 态 。 除 了 在 应 用 程序 的 使 用 之 间 保 存 工 具 条 的 状 态 , 通 常 在 用 户 开 始 定 制 该 工 具 条 之 前 应 用 程 序会 保 存 工 具 条 的 状 态 , 以 防 用 户 后 来 想 将 工 具 条 恢 复 到 它 的 最 初 的 状 态 。

为 Internet Explorer 4.0 或 更 新 版 提 供 的 支 持

要 支 持 在 Internet Explorer 4.0 或 更 新 版 之 后 引 入 的 性 能 , MFC 提 供 了 图 像 列 表支 持 , 为 工 具 条 提 供 了 透 明 和 平 坦 风 格 。

一 个 透 明 的 工 具 条 允 许 在 工 具 条 下 的 客 户 被 透 过 工 具 条 显 示 出 来 。 要 创 建 一 个透 明 的 工 具 条 , 要 同 时 使 用 TBSTYLE_FLAT 和 TBSTYLE_TRANSPARENT 风 格 。 透 明 的 工 具 条 具 有 热 点 跟 踪 的 特 色 ; 就 是 说 , 当 鼠 标 指 针 移 动 到 工 具 条的 一 个 热 点 按 钮 上 时 , 按 钮 的 外 观 改 变 。 只 用 TBSTYLE_FLAT 风 格 创 建 的 工具 条 将 包 含 不 透 明 的 按 钮 。

图 像 列 表 支 持 使 控 件 的 缺 省 行 为 具 有 更 大 的 灵 活 性 , 并 支 持 热 点 图 像 和 无 效 的图 像 。 对 透 明 的 工 具 条 使 用 GetImageList , GetHotImageList 和GetDisabledImageList 可 以 根 据 它 的 状 态 来 操 纵 图 像 。

有 关 使 用 CToolBarCtrl 的 更 多 信 息 , 参 见 “ Visual C++ 程 序 员 指 南 ” 中 的 “ 控件 主 题 ” 和 “ 使 用 CToolBarCtrl” 。

#include <afxcmn.h>

请 参 阅 CToolBar

CToolBarCtrl 类 成 员

Construction

CToolBarCtrl 构 造 一 个 CToolBarCtrl 对 象

Create 创 建 一 个 工 具 条 控 件 并 将 它 与 一 个 CToolBarCtrl 对象 连 接

Attributes

IsButtonEnabled 指 示 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 是 有 效 的IsButtonChecked 指 示 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 被 核 选 了IsButtonPressed 指 示 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 被 压 住IsButtonHidden 指 示 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 被 隐 藏

续 表

IsButtonIndeterminate 指 示 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 状 态 是 否 是

不 确 定 的 ( 灰 的 )

SetState 设 置 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 状 态

GetState 获 取 关 于 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 状 态 的信 息 , 比 如 它 是 有 效 的 、 被 压 住 的 , 或 是 被 核 选的

GetButton 获 取 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 信 息GetButtonCount 获 取 当 前 在 该 工 具 条 控 件 中 的 按 钮 的 数 目GetItemRect 获 取 一 个 工 具 条 控 制 中 的 按 钮 的 边 界 矩 形GetRect 获 取 一 个 特 定 工 具 条 按 钮 的 边 界 矩 形SetButtonStructSize 指 定 TBBUTTON 结 构 的 大 小

GetButtonSize 获 取 的 像 素 表 示 的 工 具 条 按 钮 当 前 宽 度 和 高 度

SetButtonSize 设 置 要 被 添 加 到 一 个 工 具 条 控 件 中 去 的 按 钮 的 尺

SetBitmapSize 设 置 要 被 添 加 到 一 个 工 具 条 控 件 中 去 的 位 图 图 像

的 尺 寸

GetToolTips 获 取 与 此 工 具 条 控 件 相 关 联 的 工 具 提 示 控 件 ( 如

果 有 的 话 ) 的 句 柄

SetToolTips 将 一 个 工 具 提 示 控 件 与 该 工 具 条 控 件 关 联

SetOwner 设 置 接 收 来 自 工 具 条 控 件 的 通 知 消 息 的 窗 口

SetRows 设 置 显 示 在 工 具 条 中 的 按 钮 的 行 数

续 表

GetRows 获 取 当 前 显 示 在 工 具 条 中 的 按 钮 的 行 数

SetCmdID 设 置 当 指 定 按 钮 被 按 下 时 , 要 发 送 到 属 主 窗 口 的

命 令 标 识 符

GetBitmapFlags 获 取 与 工 具 条 位 图 相 关 联 的 标 志

GetDisabledImageLis t

获 取 被 一 个 工 具 条 控 件 用 来 显 示 无 效 按 钮 的 图 像列 表

GetHotImageList 获 取 被 一 个 工 具 条 控 件 用 来 显 示 “ 热 点 ” 按 钮 的

图 像 列 表 。 当 鼠 标 指 针 在 一 个 热 点 控 件 上 时 , 该控 件 被 加 亮 显 示

GetImageList 获 取 被 一 个 工 具 条 控 件 用 来 显 示 缺 省 状 态 按 钮 的

图 像 列 表

GetStyle 获 取 一 个 工 具 条 控 件 当 前 使 用 的 风 格

GetMaxTextRows 获 取 显 示 在 一 个 工 具 条 按 钮 上 的 文 本 行 的 最 大 行

IsButtonHighlighted 检 验 工 具 条 控 件 的 加 亮 状 态

SetButtonWidth 设 置 工 具 条 控 件 中 的 按 钮 宽 度 的 最 大 和 最 小 值

SetDisabledImageList 设 置 将 要 被 工 具 条 控 件 用 来 显 示 无 效 按 钮 的 图 像

列 表

SetHotImageLise 设 置 将 要 被 工 具 条 控 件 用 来 显 示 “ 热 点 ” 按 钮 的

图 像 列 表

续 表

SetImageList 设 置 将 要 被 工 具 条 控 件 用 来 显 示 缺 省 状 态 按 钮 的

图 像 列 表

GetDropTarget 获 取 一 个 工 具 条 控 件 的 IDropTarget 接口SetIndent 设 置 一 个 工 具 条 控 件 中 的 第 一 个 按 钮 的 缩 排SetMaxTextRows 设 置 一 个 工 具 条 按 钮 所 显 示 的 最 大 文 本 行 数SetStyle 设 置 一 个 工 具 条 控 件 的 风 格GetAnchorHighlight 获 取 一 个 工 具 条 的 固 定 的 加 亮 设 置SetAnchorHighlight 设 置 一 个 工 具 条 的 固 定 的 加 亮 设 置GetHotItem 获 取 一 个 工 具 条 中 的 热 点 项 的 索 引

SetHotItem 设 置 一 个 工 具 条 中 的 热 点 项 的 索 引

GetInsertMark 获 取 工 具 条 的 当 前 插 入 标 记

SetInsertMark 设 置 工 具 条 的 当 前 插 入 标 记

GetMaxSize 获 取 工 具 条 中 的 所 有 可 视 按 钮 和 分 隔 线 的 总 的 尺

InsertMarkHitTest 获 取 一 个 工 具 条 中 的 某 个 点 的 插 入 标 记 信 息

GetExtendedStyle 获 取 一 个 工 具 条 控 件 的 扩 展 风 格

SetExtendedStyle 设 置 一 个 工 具 条 控 件 的 扩 展 风 格GetInsertMarkColor 获 取 用 来 绘 制 工 具 条 的 插 入 标 记 的 颜 色SetInsertMarkColor 设 置 用 来 绘 制 工 具 条 的 插 入 标 记 的 颜 色MapAccelerator 将 一 个 加 速 键 映 射 到 一 个 工 具 条 按 钮MoveButton 将 一 个 按 钮 从 一 个 索 引 移 动 到 另 一 个 索 引HitTest 确 定 一 个 点 位 于 一 个 工 具 条 控 件 的 什 么 地 方

Operation s

EnableButton 使 一 个 工 具 条 控 件 中 的 按 钮 有 效 或 无 效CheckButton 核 选 或 清 除 一 个 工 具 条 控 件 中 的 指 定 按 钮PressButton 按 下 或 释 放 一 个 工 具 条 控 件 中 的 指 定 按 钮GetButtonInfo 获 取 工 具 条 中 的 一 个 按 钮 的 信 息SetButtonInfo 设 置 工 具 条 中 的 一 个 按 钮 的 信 息

S etDrawTextFlags 设 置 W in 32 中 DrawText 功 能 的 标 志 , 该 功 能 通 常

根 据 标 志 设 置 的 指 定 矩 形 、 格 式 设 置 文 本 HideButton 隐 藏 或 显 示 一 个 工 具 条 控 件 中 的 指 定 按 钮Indeterminate 设 置 或 清 除 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 不 确 定

( 灰 的 ) 状 态

AddBitmap 将 一 个 或 更 多 个 位 图 按 钮 图 像 添 加 到 一 个 工 具 条 控

件 可 用 的 按 钮 图 像 列 表 中

AddButtons 将 一 个 或 多 个 按 钮 添 加 到 一 个 工 具 条 按 钮 中InsertButton 在 一 个 工 具 条 控 件 中 插 入 一 个 按 钮DeleteButton 从 该 工 具 条 控 件 中 删 除 一 个 按 钮

CommandToIndex 获 取 与 指 定 的 命 令 标 识 符 相 关 联 的 按 钮 的 从 零 开 始

的 索 引

RestoreState 恢 复 该 工 具 条 控 件 的 状 态

MarkButton 设 置 在 一 个 工 具 条 控 件 中 给 定 的 高 亮 状 态LoadImages 将 位 图 定 位 到 工 具 条 控 件 的 图 像 列 表 中SaveState 保 存 该 工 具 条 控 件 的 状 态

Customize 显 示 CustomizeToolbar 对 话 框

AddString 将 作 为 一 个 资 源 ID 传 递 的 新 字 符 串 添 加 到 工 具 条

的 内 部 字 符 串 列 表 中

AddStrings 将 一 个 或 多 个 新 字 符 串 添 加 到 工 具 条 的 内 部 字 符 串

列 表 中 , 是 通 过 传 递 指 向 这 些 用 .空 字 符 分 隔 的 字 符串 的 缓 冲 区 的 指 针 来 传 递 这 些 字 符 串 的

AutoSize 调 整 一 个 工 具 条 控 件 的 尺 寸

CToolBarCtrl : 处 理 工 具 提 示 通 知

当 你 指 定 工 具 条 具 有 TBSTYLE_TOOLTIPS 风 格 时 , 该 工 具 条 创 建 并 管 理 一 个工 具 提 示 控 件 。 一 个 工 具 提 示 是 一 个 小 的 弹 出 窗 口 , 该 窗 口 包 含 了 一 行 用 于 描述 一 个 工 具 条 按 钮 的 文 本 。 通 常 该 工 具 提 示 是 被 隐 藏 的 , 只 有 当 用 户 将 光 标 放在 一 个 工 具 条 按 钮 上 并 停 留 大 概 半 秒 时 间 时 它 才 显 示 出 来 。 工 具 提 示 显 示 在 光标 的 附 近 。

在 工 具 提 示 被 显 示 之 前 , TTN_NEEDTEXT 通 知 消 息 被 发 送 给 该 工 具 条 的 属 主窗 口 , 以 获 取 对 应 于 该 按 钮 的 描 述 文 本 。 如 果 该 工 具 条 的 属 主 窗 口 是 一 个CFrameWnd 窗 口 , 则 不 需 要 任 何 额 外 的 工 作 就 会 显 示 工 具 提 示 , 因 为CFrameWnd 有 一 个 缺 省 的 TTN_NEEDTEXT 通 知 处 理 函 数 。 如 果 该 工 具 条 的属 主 窗 口 不 是 由 CFrameWnd 派 生 而 来 的 , 比 如 是 一 个 对 话 框 或 格 式 视 , 则 你必 须 在 你 的 属 主 窗 口 的 消 息 映 射 中 添 加 一 项 , 并 在 消 息 映 射 中 提 供 一 个 通 知 处理 函 数 。 下 面 就 是 要 被 添 加 到 你 的 属 主 窗 口 的 消 息 映 射 :

ON_NOTIFY_EX( TTN_NEEDTEXT, 0, memberFxn )

memberFxn

当 这 个 按 钮 的 文 本 需 要 显 示 时 将 被 调 用 的 成 员 函 数 。注 意 , 一 个 工 具 提 示 的 id 总 是 0 。

除 了 TTN_NEEDTEXT 通 知 , 一 个 工 具 提 示 控 件 可 以 向 一 个 工 具 条 控 件 发 送 下列 通 知 :

通 知 消 息 含义

TTN_NEEDTEXTA 需 要 ASCII 文 本 的 工 具 提 示 控 件( 只 在 W in95

下 )

TTN_NEEDTEXTW 需 要 UNICODE 文 本 的 工 具 提 示 控 件 ( 只 在

W indows N T 下 ) TBN_HOTITEMCHANGE 表 示 热 点 ( 被 加 亮 的 ) 项 已 经 改 变 了NM_RCLICK 表 示 用 户 用 鼠 标 右 键 单 击 一 个 按 钮

TBN_DRAGOUT 表 示 用 户 点 击 按 钮 并 拖 动 指 针 离 开 了 按 钮 。

它 支 持 应 用 程 序 实 现 对 一 个 工 具 条 按 钮 的 拖放 。 但 接 收 到 这 个 通 知 时 , 应 用 程 序 将 开 始拖 放 操 作

TBN_DROPDOWN 表 示 用 户 已 经 点 击 了 一 个 使 用

TBSTYLE_DROPDOWN 风 格 的 按 钮

TBN_GETOBJECT 表 示 用 户 已 经 将 指 针 移 动 到 了 一 个 使 用

TBSTYLE_DROPDOWN 风 格 的 按 钮 上

处 理 函 数 的 例 子 和 有 关 使 能 工 具 提 示 的 更 多 信 息 , 参 见 “ V isual C++ 程 序 员 指南 ” 中 的 “ 工 具 提 示 ” 。

CToolBarCtrl : 处 理 定 制 通 知

  • 个 W indows 工 具 条 通 用 控 件 具 有 内 在 的 定 制 特 征 , 包 括

    一 个 系 统 定 义 的 定 制

对 话 框 , 用 来 让 用 户 插 入 、 删 除 , 或 重 新 安 排 工 具 条 按 钮 。 应 用 程 序 决 定 定 制是 否 有 效 , 并 控 制 用 户 对 该 工 具 条 定 制 的 限 度 。

你 可 以 通 过 给 予 工 具 条 CCS_ADJUSTABLE 风 格 来 使 这 些 定 制 特 征 对 于 用 户 来说 是 可 用 的 。 此 定 制 特 征 允 许 用 户 将 一 个 按 钮 拖 动 到 一 个 新 的 位 置 , 或 通 过 拖动 按 钮 离 开 工 具 条 来 删 除 这 个 按 钮 。 另 外 , 用 户 可 以 双 击 工 具 条 来 显 示Customize Toolbar 对 话 框 , 让 用 户 添 加 、 删 除 , 或 重 新 安 排 工 具 条 按 钮 。 应 用程 序 可 以 通 过 使 用 Custoimize 成 员 函 数 来 显 示 对 话 框 。

在 定 制 过 程 中 的 每 一 步 , 工 具 条 控 件 都 向 父 窗 口 发 送 通 知 消 息 。 如 果 用 户 按 住SHIFT 键 并 开 始 拖 动 一 个 按 钮 , 则 工 具 条 自 动 处 理 这 个 拖 动 操 作 。 工 具 条 发 送TBN_QUERYDELETE 通 知 消 息 给 父 窗 口 , 以 确 定 是 否 应 该 删 除 该 按 钮 。 如 果父 窗 口 返 回 FALSE , 则 这 个 拖 动 操 作 结 束 。 否 则 , 工 具 条 捕 捉 鼠 标 输 入 并 等 待用 户 释 放 鼠 标 按 钮 。

当 用 户 释 放 鼠 标 按 钮 时 , 工 具 条 控 件 确 定 鼠 标 光 标 所 在 的 位 置 。 如 果 该 光 标 的位 置 是 在 工 具 条 之 外 , 则 按 钮 被 删 除 。 如 果 光 标 位 于 另 一 个 工 具 条 按 钮 上 , 则工 具 条 向 其 父 窗 口 发 送 TBN_QUERYINSERT 通 知 消 息 , 以 确 定 是 否 要 将 一 个按 钮 插 入 在 给 定 按 钮 的 左 边 。 如 果 父 窗 口 返 回 TRUE , 则 该 按 钮 被 插 入 ; 否 则 , 不 插 入 。 工 具 条 发 送 TBN_TOOLBARCHANGE 通 知 来 表 示 拖 动 操 作 结 束 。

如 果 用 户 在 没 有 按 下 SHIFT 键 的 情 况 下 开 始 一 次 拖 动 操 作 , 则 工 具 条 控 件 发 送TBN_BEGINDRAG 通 知 消 息 给 属 主 窗 口 。 一 个 实 现 了 自 己 的 按 钮 拖 动 代 码 的应 用 程 序 可 以 使 用 这 个 消 息 作 为 开 始 一 次 拖 动 操 作 的 信 号 。 工 具 条 发 送TBN_ENDDRAG 通 知 消 息 来 表 示 拖 动 操 作 结 束 。

当 用 户 通 过 使 用 Customize Toolbar 对 话 框 来 定 制 一 个 工 具 条 时 , 该 工 具 条 控 件发 送 通 知 消 息 。 在 用 户 双 击 工 具 条 之 后 , 但 在 对 话 框 被 创 建 之 前 , 该 工 具 条 发送 TBN_BEGINADJUST 通 知 消 息 。 然 后 , 工 具 条 开 始 发 送 一 系 列TBN_QUERYINSERT 消 息 , 以 确 定 该 工 具 条 是 否 允 许 插 入 按 钮 。 当 父 窗 口 返回 TRUE 时 , 该 工 具 条 停 止 发 送 TBN_QUERYINSERT 通 知 消 息 。 如 果 父 窗 口没 有 对 任 何 按 钮 返 回 TRUE , 则 工 具 条 销 毁 该 对 话 框 。

接 着 ,工 具 条 控 件 通 过 为 工 具 条 中 的 每 一 个 按 钮 发 送 一 个 TBN_QUERYDELETE 通 知 消 息 来 确 定 是 否 可 以 从 工 具 条 中 删 除 某 个 按 钮 。 父 窗 口 返 回 TRUE 则 表 示可 以 删 除 该 按 钮 ; 否 则 , 父 窗 口 返 回 FALSE 。 工 具 条 将 所 有 的 按 钮 都 添 加 到 对话 框 中 , 但 是 将 那 些 不 能 删 除 的 按 钮 变 灰 。

不 管 什 么 时 候 , 当 工 具 条 控 件 需 要 有 关 Customize Toolbar 对 话 框 中 的 某 个 控 件的 信 息 时 , 它 就 发 送 TBN_GETBUTTONINFO 通 知 信 息 , 并 指 定 它 想 获 取 其 信息 的 按 钮 的 索 引 , 以 及 一 个 TBNOTIFY 结 构 的 地 址 。 父 窗 口 必 须 用 相 关 的 信息 填 充 该 结 构 。

Customize Toolbar 对 话 框 还 包 括 一 个 Help 按 钮 和 一 个 Reset 按 钮 。 当 用 户 选 择Help 按 钮 时 , 工 具 条 控 件 发 送 TBN_CUSTHELP 通 知 消 息 。 父 窗 口 应 该 通 过 显示 帮 助 信 息 来 作 出 响 应 。 当 用 户 选 择 Reset 按 钮 时 , 对 话 框 发 送 TBN_RESET 消 息 。 这 个 消 息 表 示 工 具 条 要 再 次 初 始 化 这 个 对 话 框 。

这 些 消 息 都 是 WM_NOTIFY 消 息 , 通 过 向 你 的 属 主 窗 口 的 消 息 映 射 中 添 加 下列 形 式 的 消 息 映 射 项 , 你 可 以 在 你 的 属 主 窗 口 中 处 理 它 们 。

ON_NOTIFY ( wNotifyCode , idContro l, memberFxn

wNotifyCode

通 知 消 息 标 识 符 代 码 , 比 如 TBN_BEGINADJUST 。

idControl

发 送 通 知 的 控 件 的 标 识 符 。

memberFxn

当 这 个 通 知 被 接 收 时 要 被 调 用 的 成 员 函 数 。

你 的 成 员 函 数 应 该 用 下 面 的 原 形 来 声 明 :

afx_msg void memberFxn ( NMHDR * pNotifyStruct, LRESULT * result );

如 果 通 知 消 息 的 处 理 函 数 返 回 一 个 值 , 则 处 理 函 数 应 该 将 这 个 值 存 放 在 由 result

指 向 的 LRESULT 中 。

对 每 一 个 消 息 , pNotifyStruct 指 向 一 个 N M H D R 结 构 或 一 个 TBNOTIFY 结 构 。这 些 结 构 被 描 述 如 下 :

N M H D R 结 构 包 含 了 下 列 成 员 :

typedef struct tagN M H D R {

H W N D hwndFrom; // 发 送 消 息 的 控 件 的 句 柄UINT idFrom; // 发 送 消 息 的 控 件 的 标 识 符UINT code; // 通 知 代 码 , 参 见 下 面

} NMHDR;

hwndFrom

正 发 送 通 知 的 控 件 的 窗 口 句 柄 。 要 将 这 个 句 柄 转 换 为 一 个 CWnd 指 针 , 可 以 使 用 CWnd::FromHandle 。

idFrom

发 送 通 知 的 控 件 的 标 识 符 。

code

通 知 代 码 。 这 个 成 员 可 以 是 一 个 特 定 于 一 个 控 件 类 型 的 值 , 比 如TBN_BEGINADJUST 或 TTN_NEEDTEXT , 或 者 它 可 以 是 下 面 列 出 的 普通 通 知 值 中 的 一 个 :

  • NM_CLICK 用 户 在 控 件 中 单 击 了 鼠 标 的 左 按 钮 。

  • NM_DBLCLK 用 户 在 控 件 中 双 击 了 鼠 标 的 左 按 钮 。

  • NM_KILLFOCUS 控 件 失 去 了 输 入 焦 点 。

  • NM_OUTOFMEMORY 由 于 没 有 足 够 的 可 用 内 存 , 控 件 无 法 完

    成 一 次 操作 。

  • NM_RCLICK 用 户 在 控 件 中 单 击 了 鼠 标 的 右 按 钮 。

  • NM_RDBLCLK 用 户 在 控 件 中 双 击 了 鼠 标 的 右 按 钮 。

  • NM_RETURN 控 件 拥 有 输 入 焦 点 , 并 且 用 户 按 下 了 ENTER 键

  • NM_SETFOCUS 控 件 已 经 接 收 了 输 入 焦 点 。

TBNOTIFY 结 构 包 含 下 列 成 员 :

typedef struct {

N M H D R hdr; // 对 所 有 WM_NOTIFY 消 息 都 通 用 的 信 息

int iItem; // 与 通 知 相 关 联 的 控 件 的 的 索 引TBBUTTON tbButton; // 与 通 知 相 关 联 的 控 件 的 信 息int cchText; // 按 钮 文 本 中 的 字 符 数

LPSTR lpszText; // 按 钮 文 本 的 地 址

} TBNOTIFY, FAR* LPTBNOTIFY;

hdr

iItem

对 所 有 WM_NOTIFY 消 息 都 通 用 的 信 息 。

与 通 知 相 关 联 的 控 件 的 的 索 引 。

tbButton

包 含 与 通 知 相 关 联 的 工 具 条 控 件 信 息 的 BBUTTON 结 构 。

cchText

按 钮 文 本 中 的 字 符 数 。

lpszText

指 向 按 钮 文 本 的 指 针 。工 具 条 发 送 下 列 信 息 :

  • TBN_BEGINADJUST 当 用 户 开 始 定 制 一 个 工 具 条 控 件 时 发 送

    此 通 知 。 指

针 指 向 的 N M H D R 结 构 包 含 了 有 关 这 个 通 知 的 信 息 。 处 理 程 序 不 需 要 返 回任 何 值 。

  • TBN_BEGINDRAG 当 用 户 开 始 拖 动 一 个 工 具 条 控 件 中 的 按 钮

    时 发 送 此 通

知 。 指 针 指 向 一 个 TBNOTIFY 结 构 。 iItem 成 员 包 含 了 被 拖 动 的 按 钮 的 从零 开 始 的 索 引 。 处 理 程 序 不 需 要 返 回 任 何 特 定 的 值 。

  • TBN_CUSTHELP 当 用 户 在 Customize Toolbar 对 话 框 中 选 择 了

    Help 按 钮时 发 送 此 通 知 。 没 有 返 回 值 。 指 针 指 向 一 个 N M H D R 结 构 , 该 结 构 包 含 了有 关 这 个 通 知 消 息 的 信 息 。 处 理 程 序 不 需 要 返 回 任 何 特 定 的 值 。

  • TBN_ENDADJUST 当 用 户 停 止 定 制 有 关 工 具 条 时 发 送 此 通 知

    。 指 针 指 向一 个 N M H D R 结 构 , 该 结 构 包 含 了 有 关 此 通 知 消 息 的 信 息 。 处 理 程 序 不 需要 返 回 任 何 特 定 的 值 。

  • TBN_ENDDRAG 当 用 户 停 止 拖 动 一 个 工 具 条 控 件 中 的 按 钮

    时 发 送 此 通知 。 指 针 指 向 一 个 TBNOTIFY 结 构 。 iItem 成 员 包 含 了 被 拖 动 的 按 钮 的 从零 开 始 的 索 引 。 处 理 程 序 不 需 要 返 回 任 何 特 定 的 值 。

  • TBN_GETBUTTONINFO 当 用 户 正 在 定 制 一 个 工 具 条 控 件 时 发

    送 此 通知 。工 具 条 使 用 这 个 通 知 消 息 来 获 取 Customize Toolbar 对 话 框 需 要 的 信 息 。指 针 指 向 一 个 TBNOTIFY 结 构 。 iItem 成 员 指 定 了 一 个 按 钮 的 从 零 开 始 的索 引 。 lpszText 和 cchText 成 员 指 定 当 前 按 钮 文 本 的 地 址 和 以 字 符 数 表 示 的长 度 。 应 用 程 序 应 该 用 有 关 这 个 按 钮 的 信 息 来 填 充 该 结 构 。 如 果 按 钮 的 信息 被 拷 贝 到 了 结 构 中 , 则 返 回 TRUE ; 否 则 就 返 回 FALSE 。

  • TBN_QUERYDELETE 当 用 户 正 在 定 制 一 个 工 具 条 时 发 送 此 消

    息 , 以 确

定 一 个 按 钮 是 否 可 以 被 从 工 具 条 控 件 中 删 除 。 指 针 指 向 一 个 TBNOTIFY 结构 。 iItem 成 员 包 含 了 要 被 删 除 的 按 钮 的 从 零 开 始 的 索 引 。 如 果 允 许 该 按 钮被 删 除 则 返 回 TRU E ; 否 则 返 回 FALSE 来 禁 止 该 按 钮 被 删 除 。

  • TBN_QUERYINSERT 当 用 户 正 在 定 制 一 个 工 具 条 控 件 时 发 送

    此 通 知 , 以

确 定 一 个 按 钮 是 否 可 以 被 插 入 到 指 定 按 钮 的 左 边 。 指 针 指 向 一 个TBNOTIFY 结 构 。 iItem 成 员 包 含 了 要 被 插 入 的 按 钮 的 从 零 开 始 的 索 引 。如 果 允 许 一 个 按 钮 被 插 入 到 给 定 按 钮 的 前 面 , 则 返 回 TRUE ; 否 则 返 回FALSE 来 禁 止 该 按 钮 被 插 入 。

  • TBN_RESET 当 用 户 重 新 设 置 Customize Toolbar 对 话 框 时 发 送

    此 通 知 。指 针 指 向 一 个 N M H D R 结 构 , 该 结 构 包 含 了 有 关 这 个 通 知 消 息 的 信 息 。 处理 程 序 不 需 要 返 回 任 何 特 定 的 值 。

  • TBN_TOOLBARCHANGE 在 用 户 定 制 完 一 个 工 具 条 控 件 之 后 发

    送 此 通知 。 指 针 指 向 一 个 N M H D R 结 构 , 该 结 构 包 含 了 有 关 这 个 通 知 消 息 的 信 息 。处 理 程 序 不 需 要 返 回 任 何 特 定 的 值 。

成 员 函 数

CToolBarCtrl::AddBitmap

int AddBitmap( int nNumButton s, UINT nBitmapID ); int AddBitmap( int nNumButton s, CBitmap* pBitmap );

返 回 值

如 果 成 功 则 返 回 第 一 个 新 图 像 的 从 零 开 始 的 索 引 ; 否 则 返 回 -1 。

参 数

nNumButtons

位 图 中 的 按 钮 图 像 的 数 目 。

nBitmapID

包 含 按 钮 图 像 或 要 增 加 图 像 的 位 图 的 资 源 标 识 符 。

pBitmap

指 向 包 含 按 钮 图 像 或 要 增 加 图 像 的 CBitmap 对 象 的 指 针 。

说 明

此 成 员 函 数 用 来 将 一 个 或 多 个 按 钮 图 像 添 加 到 保 存 在 该 工 具 条 控 件 中 的 按 钮 图像 列 表 中 。 在 向 工 具 条 添 加 位 图 之 前 , 你 可 以 使 用 W indows API CreateMappedBitmap 来 映 射 颜 色 。

如 果 你 传 递 的 是 一 个 指 向 CBitMap 对 象 的 指 针 , 则 你 必 须 确 保 直 到 工 具 条 被 销毁 的 时 候 该 位 图 才 会 被 销 毁 。

请 参 阅 CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton, CToolBarCtrl::AddString, CToolBarCtrl::AddStrings

CToolBarCtrl::AddButtons

BOOL AddButtons( int nNumButtons , LPTBBUTTON lpButtons );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nNumButtons

要 增 加 的 按 钮 数 。

lpButtons

一 个 TBBUTTON 结 构 数 组 的 地 址 , 该 结 构 包 含 关 于 要 添 加 的 按 钮 的 信息 。 该 数 组 的 元 素 数 目 必 须 与 nNumButtons 指 定 的 按 钮 数 一 样 。

说 明

此 成 员 函 数 用 来 向 一 个 工 具 条 控 件 中 添 加 一 个 或 多 个 按 钮 。

lpButtons 指 针 指 向 一 个 TBBUTTON 结 构 数 组 。 每 一 个 与 被 添 加 的 按 钮 相 关 联的 TBBUTTON 结 构 包 含 了 按 钮 的 风 格 , 图 像 和 /或 字 符 串 , 命 令 ID , 状 态 和用 户 定 义 的 数 据 :

typedef struct _TBBUTTON {

int iBitmap; // zero-based index of button image

int idCommand; // command to be sent when button pressed BYTE fsState; // button state--see below

BYTE fsStyle; // button style--see below

D W O R D dwData; // application-defined value

int iString; // zero-based index of button label string

} TBBUTTON;

其 成 员 描 述 如 下 :

iBitmap

按 钮 图 像 的 从 零 开 始 的 索 引 。 如 果 这 个 按 钮 没 有 图 像 , 则 这 个 成 员 是

NULL 。

idCommand

与 此 按 钮 相 关 联 的 命 令 标 识 符 。 当 按 钮 被 选 择 时 , 这 个 标 识 符 在 一 个W M _ C O M M A N D 消 息 中 被 发 送 。 如 果 fsStyle 成 员 的 值 为TBSTYLE_SEP , 则 这 个 成 员 必 须 是 零 。

fsState

按 钮 的 状 态 标 志 。 它 可 以 是 下 面 列 出 的 值 的 一 个 组 合 :

  • TBSTATE_CHECKED 该 按 钮 具 有 TBSTYLE_CHECKED 风 格 并 且被 按 下

  • TBSTATE_ENABLED 按 钮 接 收 用 户 输 入 。 一 个 不 具 有 这 个 状

    态 的 按

fsStyle

钮 是 不 接 收 用 户 输 入 的 , 并 且 变 灰 。

  • TBSTATE_HIDDEN 按 钮 不 可 见 , 并 且 不 能 接 收 用 户 输 入 。

  • TBSTATE_INDETERMINATE 按 钮 是 变 灰 的 。

  • TBSTATE_PRESSED 按 钮 被 按 下 。

  • TBSTATE_WRAP 按 钮 之 后 是 一 个 分 隔 线 。 此 按 钮 还 必 须 具

TBSTATE_ ENABLED 状 态 。

按 钮 风 格 。 它 可 以 是 下 列 值 的 一 个 组 合 :

  • TBSTYLE_BUTTON 创 建 一 个 标 准 的 按 钮 。

  • TBSTYLE_CHECK 创 建 一 个 每 次 用 户 点 击 时 可 以 在 按 下 和 弹

    起 状 态间 切 换 的 按 钮 。 该 按 钮 则 处 于 按 下 状 态 时 有 一 种 不 同 的 背 景 颜 色 。

  • TBSTYLE_CHECKGROUP 创 建 一 个 核 选 按 钮 , 它 被 选 择 后 一 直

    处 于按 下 状 态 , 直 到 同 组 中 的 另 一 个 按 钮 被 按 下 时 它 才 弹 起 。

  • TBSTYLE_GROUP 创 建 一 个 被 选 择 后 一 直 处 于 按 下 状 态 , 直

    到 同 组中 的 另 一 个 按 钮 被 按 下 时 它 才 弹 起 的 按 钮 。

  • TBSTYLE_SEP 创 建 一 个 分 隔 线 , 为 按 钮 组 之 间 提 供 一 个

    小 的 间 距 。具 有 这 个 风 格 的 按 钮 是 不 接 收 用 户 输 入 的 。

dwData

用 户 定 义 的 数 据 。

iString

要 用 来 作 为 按 钮 的 标 签 的 字 符 串 的 从 零 开 始 的 索 引 。 如 果 这 个 按 钮 没 有

字 符 串 则 这 个 值 为 NULL 。

你 提 供 的 图 像 和 /或 字 符 串 的 索 引 必 须 是 已 经 通 过 调 用 AddBitmap , AddString , 和 /或 AddStrings 被 添 加 到 工 具 条 控 件 的 列 表 中 的 值 。

请 参 阅 CToolBarCtrl::InsertButton, CToolBarCtrl::DeleteButton, CToolBarCtrl::AddBitmap, CToolBarCtrl::AddString, CToolBarCtrl::AddStrings

CToolBarCtrl::AddString

int AddString( UINT nStringID );

返 回 值

如 果 成 功 则 返 回 被 添 加 的 第 一 个 新 字 符 串 的 从 零 开 始 的 索 引 ; 否 则 返 回 -1 。

参 数

nStringID

要 添 加 到 工 具 条 控 件 的 字 符 串 列 表 中 去 的 字 符 串 资 源 的 资 源 标 识 符 。

说 明

此 成 员 函 数 用 来 将 一 个 被 作 为 资 源 ID 传 递 的 新 字 符 串 添 加 到 工 具 条 的 内 部 字符 串 列 表 中 。

请 参 阅 CToolBarCtrl::AddStrings, CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton, CToolBarCtrl::AddBitmap

CToolBarCtrl::AddStrings

int AddStrings( LPCTSTR lpszStrings );

返 回 值

如 果 成 功 则 返 回 被 添 加 的 第 一 个 新 字 符 串 的 从 零 开 始 的 索 引 ; 否 则 返 回 -1 。

参 数

lpszStrings

一 个 包 含 要 添 加 到 工 具 条 的 字 符 串 列 表 中 去 的 一 个 或 多 个 以 空 字 符 结 尾的 字 符 串 的 缓 冲 区 的 地 址 。 最 后 一 个 字 符 串 必 须 以 两 个 空 字 符 结 尾 。

说 明

此 成 员 函 数 用 来 将 一 个 或 多 个 新 字 符 串 添 加 到 一 个 工 具 条 控 件 的 可 用 的 字 符 串列 表 中 。 缓 冲 区 中 的 字 符 串 必 须 以 空 字 符 来 分 隔 。

你 必 须 确 保 最 后 一 个 字 符 串 有 两 个 空 结 尾 符 。 为 了 准 确 地 格 式 化 一 个 常 量 字 符串 , 你 应 该 按 如 下 的 方 式 来 写 :

// 自 动 添 加 一 个 空 字 符 。

lpszStrings = "Only one string to add\0";

// 一 次 调 用 添 加 三 个 字 符 串

lpszStrings = "String 1\0String 2\0String 3\0";

你 不 能 给 这 个 函 数 传 递 一 个 CString 对 象 , 因 为 在 一 个 CStrin 中 不 可 能 有 多 于一 个 的 空 字 符 。

请 参 阅 CToolBarCtrl::AddString, CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton, CToolBarCtrl::AddBitmap

CToolBarCtrl::AutoSize

void AutoSize( );

说 明

此 成 员 函 数 用 来 调 整 整 个 工 具 条 控 件 的 尺 寸 。 当 父 窗 口 的 尺 寸 改 变 或 当 工 具 条的 尺 寸 改 变 ( 比 如 当 你 设 置 按 钮 或 位 图 尺 寸 或 添 加 字 符 串 时 ) 时 , 你 应 该 调 用这 个 函 数 。

请 参 阅 CToolBarCtrl::SetBitmapSize, CToolBarCtrl::SetButtonSize, CToolBarCtrl::AddString, CToolBarCtrl::AddStrings

CToolBarCtrl:: CheckButton

BOOL CheckButton( int nID , BOOL bCheck = TRUE );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

要 被 核 选 或 清 除 的 按 钮 的 命 令 标 识 符 。

bCheck

如 果 是 TRUE 则 核 选 该 按 钮 , 如 果 是 FALSE 则 清 除 该 按 钮 。

说 明

此 成 员 函 数 用 来 核 选 或 清 除 工 具 条 控 件 中 的 一 个 给 定 按 钮 。 当 一 个 按 钮 被 核 选时 , 它 看 起 来 就 像 被 按 下 一 样 。 如 果 你 想 改 变 多 于 一 个 的 按 钮 状 态 , 可 以 考 虑调 用 SetState 来 代 替 。

请 参 阅 CToolBarCtrl::IsButtonChecked, CToolBarCtrl::EnableButton, CToolBarCtrl::PressButton, CToolBarCtrl::HideButton, CToolBarCtrl::Indeterminate,

CToolBarCtrl::GetState, CToolBarCtrl::SetState

CToolBarCtrl:: CommandToIndex

UINT CommandToIndex( UINT nID ) const;

返 回 值

返 回 与 此 命 令 ID 相 关 联 的 按 钮 的 从 零 开 始 的 索 引 。

参 数

nID

你 想 要 查 找 其 按 钮 索 引 的 命 令 ID 。

说 明

此 成 员 函 数 用 来 获 取 与 指 定 的 命 令 标 识 符 相 关 联 的 按 钮 的 从 零 开 始 的 索 引 。

请 参 阅 CToolBarCtrl::SetCmdID, CToolBarCtrl::GetButton, CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton

CToolBarCtrl:: C reat

BOOL Create( DWORD dwStyle , const RECT& rect , CWnd* pParentWnd , UINT nID );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

dwStyle

指 定 工 具 条 控 件 的 风 格 。 工 具 条 必 须 总 是 具 有 WS_CHILD 风 格 。 另 外 , 你 可 以 为 工 具 条 指 定 在 说 明 部 分 描 述 的 工 具 条 风 格 和 窗 口 风 格 的 任 意 组合 。

rect

随 意 指 定 该 工 具 条 控 件 的 尺 寸 和 位 置 。 它 可 以 是 一 个 CRect 对 象 或 一 个

RECT 结 构 。

pParentWnd

指 定 工 具 条 控 件 的 父 窗 口 。 它 不 能 是 NULL 。

nID

指 定 工 具 条 控 件 的 ID 。

说 明

构 造 一 个 CToolBarCtrl 对 象 分 两 步 。 首 先 调 用 构 造 函 数 , 然 后 调 用 Create 来 创建 该 工 具 条 控 件 并 将 它 与 该 CToolBarCtrl 对 象 连 接 。

工 具 条 控 件 自 动 设 置 工 具 条 窗 口 的 尺 寸 和 位 置 。 其 高 度 依 赖 于 工 具 条 中 的 按 钮的 高 度 。 其 宽 度 与 父 窗 口 的 客 户 区 的 宽 度 一 样 。 CCS_TOP 和 CCS_BOTTOM 风 格 决 定 了 工 具 条 是 位 于 客 户 区 的 顶 部 还 是 底 部 。 缺 省 的 , 一 个 工 具 条 具 有CCS_TOP 风 格 。

对 一 个 工 具 条 可 以 使 用 下 面 的 窗 口 风 格 。

  • WS_CHILD 总 是 使 用

  • WS_VISIBLE 经 常 使 用

  • WS_DISABLED 很 少 使 用

接 着 , 你 还 可 以 使 用 一 种 或 多 种 通 用 控 件 风 格 :

  • CCS_ADJUSTABLE 允 许 用 户 定 制 工 具 条 。 如 果 使 用 了 这 个

    风 格 , 则 工具 条 的 属 主 窗 口 必 须 处 理 由 工 具 条 发 送 的 定 制 调 整 消 息 , 就 像 在CToolBarCtrl: 处 理 定 制 通 知 中 描 述 的 一 样 。

  • CCS_BOTTOM 使 控 件 将 自 己 定 位 在 父 窗 口 客 户 区 的 底 部 ,

    并 将 自 己 的宽 度 设 置 得 与 父 窗 口 的 宽 度 一 样 。

  • CCS_NODIVIDER 禁 止 在 控 件 的 顶 部 绘 制 两 个 像 素 的 加 亮 。

  • CCS_NOHILITE 禁 止 在 控 件 的 顶 部 绘 制 一 个 像 素 的 加 亮 。

  • CCS_NOMOVEY 使 控 件 水 平 地 , 而 不 是 垂 直 地 调 整 自 己 的

    尺 寸 和 移 动 自

己 , 作 为 对 一 个 WM_SIZE 消 息 的 响 应 。 如 果 使 用 了 CCS_NORESIZE 风格 , 则 这 个 风 格 就 不 适 用 了 。

  • CCS_NOPARENTALIGN 禁 止 控 件 自 动 移 动 到 父 窗 口 的 顶 部 或

    底 部 。 控件 保 持 它 在 父 窗 口 中 的 位 置 , 不 管 父 亲 窗 口 的 尺 寸 是 怎 么 改 变 的 。 如 果 还使 用 了 CCS_TOP 或 CCS_BOTTOM 风 格 , 则 高 度 被 调 整 为 缺 省 值 , 但 位置 和 宽 度 仍 然 保 持 不 变 。

  • CCS_NORESIZE 当 设 置 控 件 的 产 生 尺 寸 或 新 尺 寸 时 , 禁 止

    控 件 使 用 缺 省的 宽 度 和 高 度 。 控 件 使 用 在 创 建 或 改 变 大 小 时 指 定 的 宽 度 和 高 度 。

  • CCS_TOP 使 控 件 将 自 己 定 位 在 父 窗 口 的 客 户 区 的 顶 部 ,

    并 将 宽 度 设 置 为与 父 窗 口 的 宽 度 一 样 。 控 件 缺 省 的 就 具 有 这 个 风 格 。

最 后 , 可 以 对 控 件 或 按 钮 本 身 使 用 工 具 条 风 格 的 一 个 组 合 。 在 “ Platform SDK ” 中 的 “ 工 具 条 控 件 和 按 钮 风 格 ” 中 描 述 了 这 些 风 格 。

请 参 阅 CToolBarCtrl::CToolBarCtrl, CToolBarCtrl::SetButtonStructSize

CToolBarCtrl:: CToolBarCtrl

CToolBarCtrl( );

说 明

此 成 员 函 数 用 来 构 造 一 个 CToolBarCtrl 对 象 。 你 必 须 调 用 Create 来 使 工 具 条 可用 。

请 参 阅 CToolBarCtrl::Create

CToolBarCtrl:: Customize

void Customize( );

说 明

此 成 员 函 数 用 来 显 示 Customize Toolbar 对 话 框 。 该 对 话 框 允 许 用 户 通 过 增 加 或删 除 按 钮 来 定 制 工 具 条 。

要 支 持 定 制 , 你 的 工 具 条 的 父 窗 口 必 须 对 定 制 通 知 消 息 作 出 处 理 , 就 象 在CToolBarCtrl:: 处 理 定 制 通 知 中 所 描 述 的 那 样 。 你 的 工 具 条 还 必 须 使 用CCS_ADJUSTABLE 风 格 创 建 , 就 象 在 CToolBarCtrl::Create 中 描 述 的 那 样 。

请 参 阅 CToolBarCtrl::Handling Customization Notifications

CToolBarCtrl:: DeleteButton

BOOL DeleteButton( int nIndex );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nIndex

要 删 除 的 按 钮 的 从 零 开 始 的 索 引 。

说 明

此 成 员 函 数 用 来 从 工 具 条 控 件 中 删 除 一 个 按 钮 。

请 参 阅 CToolBarCtrl::AddButtons, CToolBarCtrl::AutoSize, CToolBarCtrl::InsertButton

CToolBarCtrl:: EnableButton

BOOL EnableButton( int nID , BOOL bEnable = TRUE );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

要 使 其 无 效 或 有 效 的 按 钮 的 标 识 符 。

bEnable

如 果 是 TRUE 则 表 示 要 使 按 钮 有 效 ; 是 FALSE 表 示 要 使 按 钮 无 效 。

说 明

此 成 员 函 数 用 来 使 一 个 工 具 条 控 件 中 的 指 定 按 钮 有 效 或 无 效 。 当 一 个 按 钮 已 经是 有 效 的 时 , 它 就 可 以 被 按 下 或 核 选 。 如 果 你 想 改 变 多 于 一 个 的 按 钮 状 态 , 可以 考 虑 调 用 SetState 。

请 参 阅 CToolBarCtrl::IsButtonEnabled, CToolBarCtrl::CheckButton, CToolBarCtrl::PressButton, CToolBarCtrl::HideButton, CToolBarCtrl::Indeterminate CToolBarCtrl::GetState, CToolBarCtrl::SetState

CToolBarCtrl:: GetAnchorHighlight

UINT GetBitmapFlags( ) const;

返 回 值

如 果 返 回 值 是 非 零 值 , 则 可 以 进 行 定 位 加 亮 。 如 果 返 回 的 是 零 , 则 不 能 进 行 定位 加 亮 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETANCHORHIGHLIGHT , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: SetAnchorHighlight

CToolBarCtrl:: GetBitmapFlags

UINT GetBitmapFlags( ) const;

返 回 值

如 果 显 示 可 以 支 持 大 工 具 条 位 图 , 则 返 回 具 有 TBBF_LARGE 标 志 集 的 UIN T , 否 则 就 清 除 。

说 明

此 成 员 函 数 用 来 从 工 具 条 中 获 取 位 图 标 志 。 应 该 在 创 建 工 具 条 之 后 , 但 在 向 工具 条 添 加 位 图 之 前 调 用 这 个 函 数 。

返 回 值 说 明 了 显 示 是 否 支 持 大 位 图 。 如 果 显 示 支 持 大 位 图 , 并 且 你 选 择 了 使 用它 们 , 则 在 使 用 AddBitmap 添 加 你 的 大 位 图 之 前 , 调 用 SetBitmapSize 和SetButtonSize 。

CToolBarCtrl::SetButtonSize

CToolBarCtrl:: GetButton

BOOL GetButton( int nIndex , LPTBBUTTON lpButton ) const;

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nIndex

要 获 取 其 信 息 的 按 钮 的 从 零 开 始 的 索 引 。

lpButton

用 来 接 收 按 钮 信 息 的 拷 贝 的 TBBUTTON 结 构 的 地 址 。 参 见

CToolBarCtrl::AddButtons 可 以 获 得 有 关 TBBUTTON 结 构 的 信 息 。

说 明

此 成 员 函 数 用 来 获 取 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 信 息 。

请 参 阅 CToolBarCtrl::GetState, CToolBarCtrl::SetState,

dToIndex,CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton

CToolBarCtrl:: GetButtonCount

int GetButtonCount( ) const;

返 回 值

返 回 按 钮 的 数 目 。

说 明

此 成 员 函 数 用 来 获 取 工 具 条 控 件 中 的 当 前 按 钮 的 数 目 。

请 参 阅 CToolBarCtrl::GetButton, CToolBarCtrl::GetState, CToolBarCtrl::GetItemRect, CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton , CToolBarCtrl::DeleteButton

CToolBarCtrl:: GetButtonInfo

BOOL GetButtonInfo( int nID , TBBUTTONINFO* ptbbi ) const;

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID pbbi

说 明

按 钮 的 标 识 符 。

一 个 指 向 TBBUTTONINFO 结 构 的 指 针 , 该 结 构 用 来 接 收 按 钮 的 信 息 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETBUTTONINFO , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl::SetButtonInfo CToolBarCtrl:: GetButtonSize DWORD GetButtonSize( ) const;

返 回 一 个 DWORD 值 , 其 LOWORD 和 HIWORD 中 分 别 包 含 了 宽 度 和 高 度 值 。

说 明

此 成 员 函 数 用 来 获 取 一 个 工 具 条 按 钮 的 尺 寸 。

请 参 阅 CToolBarCtrl::GetButtonInfo

CToolBarCtrl:: GetDisabledImageList

CImageList* GetDisabledImageList( ) const;

返 回 值

返 回 一 个 指 向 CImageList 对 象 的 指 针 。 如 果 没 有 被 设 置 为 无 效 的 图 像 列 表 则 返回 NULL 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETDISABLEDIMAGELIST , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

GetDisabledImageList 的 MFC 实 现 使 用 包 含 了 工 具 条 控 件 的 按 钮 图 像 的

CImageList 对 象 , 而 不 是 使 用 一 个 图 像 列 表 的 句 柄 。

请 参 阅 CToolBarCtrl::SetDisabledImageList, CToolBarCtrl::GetHotImageList, CToolBarCtrl::GetImageList

CToolBarCtrl:: GetDropTarget

HRESULT GetDropTarget( IDropTarget** ppDropTarget ) const;

返 回 值

返 回 一 个 HRESULT 值 , 指 明 操 作 的 成 功 或 失 败 。

参 数

ppDropTarget

一 个 指 向 IDropTarget 接 口 指 针 的 指 针 。 如 果 发 生 了 一 个 错 误 , 则 一 个

NULL 指 针 将 被 放 置 在 这 个 地 址 中 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETOBJECT , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: GetExtendedStyle

DWORD GetExtendedStyle ( ) const;

返 回 值

返 回 一 个 代 表 此 工 具 条 控 件 中 当 前 使 用 的 扩 展 风 格 的 结 构 。 参 见 “ Platform SDK ” 中 的 “ 工 具 条 扩 展 风 格 ” 可 以 获 得 风 格 的 列 表 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETEXTENDEDSTYLE ,就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl::SetExtendedStyle

CToolBarCtrl:: GetHotImageList

CImageList* GetHotImageList( ) const;

返 回 值

返 回 一 个 指 向 CImageList 对 象 的 指 针 , 如 果 没 有 被 设 置 为 无 效 的 图 像 列 表 则 返回 NULL 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消息 TB_GETHOTIMAGELIST , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

当 鼠 标 指 针 位 于 一 个 热 点 按 钮 上 时 , 该 按 钮 被 加 亮 显 示 。

请 参 阅 CToolBarCtrl::GetDisabledImageList, CToolBarCtrl::GetImageList

CToolBarCtrl:: GetHotItem

int GetHotItem( ) const;

返 回 值

返 回 一 个 工 具 条 中 的 热 点 项 的 从 零 开 始 的 索 引 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETHOTITEM , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: GetImageList

CImageList* GetImageList ( ) const;

返 回 值

返 回 一 个 指 向 CImageList 对 象 的 指 针 , 如 果 没 有 被 设 置 为 无 效 的 图 像 列 表 则 返回 NULL 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETIMAGELIST ,就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: GetInsertMark

void GetInserMark ( TBINSERTMARK* ptbim ) const;

参 数

ptbim

一 个 指 向 TBINSERTMARK 结 构 的 指 针 , 该 结 构 用 来 接 收 插 入 标 记 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETINSERTMARK , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl::SetInsertMark

CToolBarCtrl:: GetInsertMarkColor

COLORREF GetInsertMarkColor( ) const;

返 回 值

返 回 一 个 包 含 当 前 插 入 标 记 的 颜 色 的 COLORREF 值 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETINSERTMARKCOLOR , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl::SetInsertMarkColor

BOOL GetItemRect( int nIndex , LPRECT lpRect ) const;

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nIndex

要 获 取 其 信 息 的 按 钮 的 从 零 开 始 的 索 引 。

lpRect

一 个 用 来 接 收 边 界 矩 形 的 坐 标 的 RECT 结 构 或 CRect 对 象 的 地 址 。

说 明

此 成 员 函 数 用 来 接 收 工 具 条 控 件 中 的 一 个 按 钮 的 边 界 矩 形 。 此 函 数 不 接 收 状 态被 设 置 为 TBSTATE_HIDDEN 的 按 钮 的 边 界 矩 形 。

请 参 阅 CToolBarCtrl::GetButton, CToolBarCtrl::GetButtonCount, CToolBarCtrl::GetState, CToolBarCtrl::SetButtonSize, CToolBarCtrl::SetBitmapSize

BOOL GetMaxSize ( LPSIZE pSize ) const;

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

pSize

一 个 指 向 用 来 接 收 项 的 尺 寸 的 SIZE 结 构 的 指 针 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETMAXSIZE , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: GetMaxTextRows

int GetMaxTextRows ( ) const;

返 回 一 个 工 具 条 按 钮 上 显 示 的 文 本 的 最 大 行 数 。

说 明

此 成 员 函 数 用 来 获 取 一 个 工 具 条 按 钮 上 显 示 的 文 本 的 最 大 行 数 。

请 参 阅 CToolBarCtrl:: SetMaxTextRows

CToolBarCtrl:: GetRect

BOOL GetRect( int nID , LPRECT lpRect ) const;

返 回 值

如 果 成 功 则 返 回 TRU E ; 否 则 返 回 FALSE 。

参 数

nID

按 钮 标 识 符 。

lpRect

一 个 指 向 用 来 接 收 边 界 矩 形 信 息 的 RECT 结 构 的 指 针 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_GETRECT , 就 像 在 “ Platform SDK ” 中描 述 的 一 样 。

CToolBarCtrl:: GetRows

int GetRows( ) const;

返 回 值

返 回 工 具 条 中 当 前 显 示 的 按 钮 的 行 数 。

说 明

此 成 员 函 数 用 来 获 取 工 具 条 控 件 中 当 前 显 示 的 按 钮 的 行 数 。 注 意 , 除 非 工 具 条是 用 TBSTYLE_WRAPABLE 风 格 创 建 的 , 否 则 行 数 总 是 1 。

请 参 阅 TBSTYLE_WRAPABLE in CToolBarCtrl::Create, CToolBarCtrl::SetRows

CToolBarCtrl:: GetState

int GetState( int nID ) const;

返 回 值

如 果 成 功 则 返 回 按 钮 的 状 态 信 息 ; 否 则 返 回 -1 。 按 钮 的 状 态 信 息 可 以 是 在

CToolBarCtrl::AddButtons 中 所 列 出 的 值 的 一 个 组 合 。

参 数

nID

要 获 取 其 信 息 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 获 取 有 关 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 状 态 的 信 息 , 比 如 它是 否 是 有 效 , 被 按 下 , 或 被 核 选 。

如 果 你 要 处 理 多 于 一 个 的 按 钮 状 态 , 则 这 个 函 数 是 特 别 方 便 的 。 如 果 只 需 要 获取 一 个 状 态 , 则 可 以 使 用 下 列 成 员 函 数 : IsButtonEnabled , IsButtonChecked , IsButtonPressed , IsButtonHidden , 或 IsButtonIndeterminate 。 但 是 , GetState 成员 函 数 是 检 测 TBSTATE_WRAP 按 钮 状 态 的 唯 一 方 法 。

请 参 阅 CToolBarCtrl::SetState, CToolBarCtrl::GetItemRect, CToolBarCtrl::IsButtonEnabled, CToolBarCtrl::IsButtonChecked,

CToolBarCtrl::IsButtonPressed, CToolBarCtrl::IsButtonHidden, CToolBarCtrl::IsButtonIndeterminate

CToolBarCtrl:: GetStyle

DWORD GetStyle( ) const;

返 回 值

返 回 一 个 包 含 了 工 具 条 控 件 风 格 的 一 个 组 合 的 DWORD , 就 像 “ Platform SDK ” 中 描 述 的 一 样 。

说 明

此 成 员 函 数 用 来 获 取 一 个 工 具 条 控 件 当 前 使 用 的 风 格 。

请 参 阅 CToolBarCtrl::SetStyle

CToolBarCtrl:: GetToolTips

CToolTipCtrl* GetToolTips( ) const;

返 回 值

返 回 指 向 一 个 与 工 具 条 相 关 联 的 CToolTipCtrl 对 象 的 指 针 。 如 果 该 工 具 条 没 有关 联 的 工 具 提 示 控 件 , 则 返 回 NULL 。

说 明

此 成 员 函 数 用 来 获 取 与 工 具 条 控 件 相 关 联 的 工 具 提 示 控 件 ( 如 果 有 的 话 ) 的 句柄 。 由 于 工 具 条 控 件 通 常 会 创 建 并 维 护 它 自 己 的 工 具 提 示 控 件 , 所 以 大 多 数 程序 不 需 要 调 用 这 个 函 数 。

请 参 阅 CToolBarCtrl::SetToolTips, CToolBarCtrl: Handling Tool Tip Notifications, CToolTipCtrl

CToolBarCtrl:: H itTest

int HitTest( LPPOINT ppt ) const;

返 回 值

返 回 一 个 指 明 了 工 具 条 上 的 一 个 点 的 位 置 的 整 数 值 。 如 果 这 个 值 是 零 或 正 值 , 则 这 个 返 回 值 表 示 的 是 该 点 所 在 的 非 分 隔 线 项 的 从 零 开 始 的 索 引 。

如 果 返 回 值 是 负 值 , 则 该 点 不 在 一 个 按 钮 中 。 该 返 回 值 的 绝 对 值 是 一 个 分 隔 线或 最 近 的 非 分 隔 线 项 的 索 引 。

参 数

ppt

一 个 指 向 POINT 结 构 的 指 针 ,该 结 构 的 x 成 员 包 含 了 点 击 测 试 的 x 坐 标 , 其 y 成 员 包 含 了 点 击 测 试 的 y 坐 标 。 这 个 坐 标 是 相 对 于 工 具 条 的 客 户 区的 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_HITTEST 的 行 为 ,就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: H ideButton

BOOL HideButton( int nID , BOOL bHide = TRUE );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

要 被 显 示 或 隐 藏 的 按 钮 的 命 令 标 识 符 。

bHide

如 果 是 TRUE 则 隐 藏 此 按 钮 , 是 FALSE 则 显 示 此 按 钮 。

此 成 员 函 数 用 来 隐 藏 或 显 示 一 个 工 具 条 控 件 中 的 指 定 按 钮 。 如 果 你 想 改 变 多 于一 个 的 按 钮 状 态 , 则 可 以 考 虑 调 用 SetState 来 代 替 。

请 参 阅 CToolBarCtrl::IsButtonHidden, CToolBarCtrl::EnableButton, CToolBarCtrl::CheckButton,CToolBarCtrl::PressButton,ToolBarCtrl::Ind eterminate, CToolBarCtrl::GetState, CToolBarCtrl::SetState

CToolBarCtrl:: Indeterminate

BOOL Indeterminate( int nID , BOOL bIndeterminate = TRUE );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

要 清 除 或 设 置 其 不 确 定 状 态 的 按 钮 的 命 令 标 识 符 。

bIndeterminate

如 果 是 TRUE 则 设 置 指 定 按 钮 的 不 确 定 状 态 , 是 FALSE 则 清 除 它 。

此 成 员 函 数 用 来 设 置 或 清 除 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 不 确 定 状 态 。 不 确定 的 按 钮 被 显 示 为 灰 色 , 例 如 , 当 一 个 字 处 理 器 中 被 选 择 的 文 本 同 时 包 含 加 粗的 或 正 常 的 字 符 时 , 该 处 理 器 中 的 工 具 条 上 的 加 粗 按 钮 就 显 示 为 灰 色 。

如 果 你 希 望 改 变 多 于 一 个 的 按 钮 状 态 , 可 以 考 虑 调 用 SetState 来 代 替 。请 参 阅 Button styles in CToolBarCtrl::AddButtons, CToolBarCtrl::IsButtonIndeterminate, CToolBarCtrl::EnableButton,CToolBarCtrl::CheckButton,

CToolBarCtrl::PressButton,CToolBarCtrl::HideButton, CToolBarCtrl::GetState, CToolBarCtrl::SetState

CToolBarCtrl:: InsertButton

BOOL InsertButton( int nIndex , LPTBBUTTON lpButton );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

nIndex

一 个 按 钮 的 从 零 开 始 的 索 引 。 此 函 数 将 一 个 新 按 钮 插 入 到 这 个 按 钮 的 左

边 。

lpButton

一 个 包 含 要 被 插 入 的 按 钮 的 信 息 的 TBBUTTON 结 构 的 指 针 。 参 见

CToolBarCtrl:: AddButtons 可 以 获 得 有 关 TBBUTTON 结 构 的 描 述 。

说 明

此 成 员 函 数 用 来 在 一 个 工 具 条 控 件 中 插 入 一 个 按 钮 。

你 提 供 的 图 像 和 / 或 字 符 串 的 索 引 必 须 是 先 前 通 过 调 用 AddBitmap , AddString

和 /或 AddStrings 已 经 添 加 到 工 具 条 控 件 的 列 表 中 去 了 的 值 。

请 参 阅 CToolBarCtrl::AddButtons, CToolBarCtrl::DeleteButton, CToolBarCtrl::AddBitmap, CToolBarCtrl::AddString, CToolBarCtrl::AddStrings

CToolBarCtrl:: InsertMarkHitest

BOOL InsertMarkHitTest( LPPOINT pp t, LPTBINSERTMARK ptbim ) const;

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

ppt

区 。

一 个 指 向 包 含 点 击 测 试 坐 标 的 POINT 结 构 , 该 坐 标 相 对 于 工 具 条 的 客 户

ptbim

一 个 指 向 用 来 接 收 插 入 标 记 信 息 的 TBINSERTMARK 结 构 的 指 针 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_INSERTMARKHITTEST 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: GetInsert M ark, CToolBarCtrl:: SetInsert M ark

CToolBarCtrl:: IsButtonChecked

BOOL IsButtonChecked( int nID ) const;

如 果 按 钮 被 核 选 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

工 具 条 中 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 确 定 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 被 核 选 。 如 果 你 要 获 取多 于 一 个 的 按 钮 状 态 , 考 虑 调 用 GetState 。

请 参 阅 CToolBarCtrl::CheckButton, CToolBarCtrl::GetState, CToolBarCtrl::SetState, CToolBarCtrl::IsButtonEnabled,

CToolBarCtrl::IsButtonPressed, CToolBarCtrl::IsButtonHidden, CToolBarCtrl::IsButtonIndeterminate

CToolBarCtrl:: IsButtonEnabled

BOOL IsButtonEnabled( int nID ) const;

如 果 按 钮 是 有 效 的 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

工 具 条 中 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 确 定 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 是 有 效 的 。 如 果 你 要 获取 多 于 一 个 的 按 钮 状 态 , 考 虑 调 用 GetState 。

请 参 阅 CToolBarCtrl::EnableButton, CToolBarCtrl::GetState, CToolBarCtrl::SetState, CToolBarCtrl::IsButtonChecked,

CToolBarCtrl::IsButtonPressed, CToolBarCtrl::IsButtonHidden,CToolBarCtrl::IsButtonIndeterminate ,CToolBarCtrl::

IsButtonHighlighted

CToolBarCtrl:: IsButtonHidden

BOOL IsButtonHidden( int nID ) const;

如 果 按 钮 被 隐 藏 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

工 具 条 中 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 确 定 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 是 隐 藏 的 。 如 果 你 要 获取 多 于 一 个 的 按 钮 状 态 , 考 虑 调 用 GetState 。

请 参 阅 CToolBarCtrl::HideButton, CToolBarCtrl::GetState, CToolBarCtrl::SetState, CToolBarCtrl::IsButtonEnabled,

CToolBarCtrl::IsButtonChecked, CToolBarCtrl::IsButtonPressed,CToolBarCtrl::IsButtonIndeterminate ,CToolBarCtrl::

IsButtonHighlighted

CToolBarCtrl:: IsButtonHighlighted

Bool IsButtonHighlighted( int nID ) const;

如 果 按 钮 被 加 亮 则 返 回 非 零 值 ; 否 则 返 回 0 。

参 数

nID

工 具 条 中 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 检 查 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 处 于 加 亮 状 态 。

请 参 阅 CToolBarCtrl:: IsButtonChecked, CToolBarCtrl:: IsButtonIndeterminate, CToolBarCtrl:: IsButtonHidden, CToolBarCtrl:: IsButtonEnabled, CToolBarCtrl:: IsButtonPressed, CToolBarCtrl:: MarkButton

CToolBarCtrl:: IsButtonIndeterminate

BOOL IsButtonIndeterminate( int nID ) const;

返 回 值

如 果 按 钮 处 于 不 确 定 状 态 则 返 回 非 零 值 ; 否 则 返 回 零 。

nID

工 具 条 中 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 确 定 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 是 不 确 定 的 。 不 确 定 按钮 被 显 示 成 灰 色 , 例 如 , 当 一 个 字 处 理 器 中 被 选 择 的 文 本 同 时 包 含 加 粗 的 或 正常 的 字 符 时 , 该 处 理 器 中 的 工 具 条 上 的 加 粗 按 钮 就 显 示 为 灰 色 。

如 果 你 要 获 取 多 于 一 个 的 按 钮 状 态 , 考 虑 调 用 GetState 。

请 参 阅 CToolBarCtrl:: Indeterminate, CToolBarCtrl:: GetState, CToolBarCtrl:: SetState CToolBarCtrl:: IsButtonEnabled,

CToolBarCtrl:: IsButtonChecked, CToolBarCtrl:: IsButtonPressed, CToolBarCtrl:: IsButtonHidden, CToolBarCtrl:: IsButtonHighlighted

CToolBarCtrl:: IsButtonPressed

BOOL IsButtonPressed( int nID ) const;

如 果 按 钮 被 按 下 则 返 回 非 零 值 , 否 则 返 回 零 。

参 数

nID

工 具 条 中 的 按 钮 的 命 令 标 识 符 。

说 明

此 成 员 函 数 用 来 确 定 一 个 工 具 条 控 件 中 的 指 定 按 钮 是 否 被 按 下 。 如 果 你 要 获 取多 于 一 个 的 按 钮 状 态 , 考 虑 调 用 GetState 。

请 参 阅 CToolBarCtrl::PressButton, CToolBarCtrl::GetState, CToolBarCtrl::SetState, CToolBarCtrl::IsButtonEnabled,

CToolBarCtrl::IsButtonChecked, CToolBarCtrl::IsButtonHidden,CToolBarCtrl::IsButtonIndeterminate ,CToolBarCtrl::

IsButtonHighlighted

CToolBarCtrl:: LoadImages

void LoadImages( int iBitmapID , HINSTANCE hinst );

iBitmapID

包 含 要 装 入 的 图 像 的 位 图 的 ID 。 要 指 定 你 自 己 的 位 图 资 源 , 可 以 将 这 个参 数 设 置 为 一 个 位 图 资 源 的 ID , 并 将 hInst 设 置 为 NULL 。 你 的 位 图 资源 将 被 添 加 到 图 像 列 表 作 为 一 个 单 一 的 图 像 。 你 可 以 通 过 将 hinst 设 置 为HINST_COMMCTRL , 将 这 个 参 数 设 置 为 下 列 ID 值 之 一 , 来 添 加 标 准的 , 系 统 定 义 的 位 图 :

位图 ID 描述

IDB_HIST_LARGE_COLOR 大 尺 寸 的 探 测 位 图IDB_HIST_SMALL_COLOR 小 尺 寸 的 探 测 位 图IDB_STD_LARGE_COLOR 大 尺 寸 的 标 准 位 图IDB_STD_SMALL _ COLOR 小 尺 寸 的 标 准 位 图IDB_VIEW_LARGE_COLOR 大 尺 寸 的 视 位 图IDB_VIEW_SMALL_COLOR 小 尺 寸 的 视 位 图

hinst

指 向 调 用 应 用 程 序 的 程 序 示 例 句 柄 。 这 个 参 数 这 个 参 数 可 以 是

HINST_COMMCTRL , 用 来 加 载 一 个 标 准 的 图 像 列 表 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_LOADIMAGES 的 行 为 , 就 象 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: SetImageList, CToolBarCtrl:: GetImageList

CToolBarCtrl:: MapAccelerator

BOOL MapAccelerator ( TCHAR chAccel , UINT* pIDBtn );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

chAccel

要 被 映 射 的 加 速 键 字 符 。 这 个 字 符 与 按 钮 文 本 中 的 加 下 划 线 的 字 符 是 一 样

的 。

pIDBtn

一 个 指 向 用 来 接 收 某 个 按 钮 的 命 令 标 识 符 的 UINT 的 指 针 。 此 按 钮 用 来 响应 在 chAccel 中 指 定 的 加 速 键 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_MAPACCELERATOR 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: MarkButton

BOOL MardButton( int nID , BOOL fHighlight = TRUE );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

按 钮 标 识 符 。

fH ighlight

指 定 要 设 置 的 加 亮 状 态 。 缺 省 的 , 这 个 值 是 TRUE 。 如 果 将 其 设 置 为

FALSE , 则 此 按 钮 被 设 置 为 它 的 缺 省 状 态 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_MARKBUTTON 的 行 为 ,就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: IsButtonHighlighted

CToolBarCtrl:: MoveButton

BOOL MoveButton( UINT nOldPos , UINT nNewPos );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nOldPos

要 被 移 动 的 按 钮 的 从 零 开 始 的 索 引 。

nNewPos

按 钮 的 终 点 的 从 零 开 始 的 索 引 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_MOVEBUTTON 的 行 为 ,就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

CToolBarCtrl:: PressButton

BOOL PressButton( int nID , BOOL bPress = TRUE );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

要 被 按 下 或 释 放 的 按 钮 的 命 令 标 识 符 。

bPress

如 果 是 TRUE 则 按 下 指 定 的 按 钮 ; 如 果 是 FLASE 则 释 放 指 定 按 钮 。

说 明

此 成 员 函 数 用 来 按 下 或 释 放 一 个 工 具 条 控 件 中 的 指 定 按 钮 。 如 果 你 要 改 变 多 于

  • 个 的 按 钮 状 态 , 可 以 考 虑 调 用 SetState 来 代 替 。

请 参 阅 CToolBarCtrl::IsButtonPressed, CToolBarCtrl::EnableButton, C ToolBarCtrl::CheckButton,CToolBarCtrl::HideButton, CToolBarCtrl::Indeterminate,

CToolBarCtrl::GetState, CToolBarCtrl::SetState

CToolBarCtrl:: RestoreState

void RestoreState( HKEY hKeyRoot , LPCTSTR lpszSubKey , LPCTSTR

lpszValueNam e);

参 数

hKeyRoot

表 示 注 册 表 中 的 一 个 当 前 打 开 的 主 键 , 或 是 下 列 预 定 义 的 保 留 句 柄 值 的 任何 一 个 :

  • HKEY_CLASSES_ROOT

  • HKEY_CURRENT_USER

  • HKEY_LOCAL_MACHINE

  • HKEY_USERS

lpszSubKey

指 向 一 个 以 空 字 符 结 尾 的 字 符 串 , 该 字 符 串 包 含 了 与 某 个 值 关 联 的 子 键

的 名 字 。 这 个 参 数 可 以 是 空 或 是 一 个 指 向 空 字 符 串 的 指 针 。 如 果 这 个 参数 是 NULL , 则 该 值 被 添 加 到 由 hKeyRoot 参 数 指 定 的 主 键 中 。

lpszValueName

指 向 一 个 包 含 要 获 取 的 值 的 名 字 的 字 符 串 。 如 果 这 个 名 字 的 值 在 主 键 中没 有 给 出 , 则 函 数 将 它 添 加 到 该 主 键 中 。

说 明

此 成 员 函 数 从 参 数 所 指 定 的 注 册 表 中 的 位 置 恢 复 工 具 条 控 件 的 状 态 。

请 参 阅 CToolBarCtrl::SaveState

CToolBarCtrl:: SaveState

void SaveState( HKEY hKeyRoo t, LPCTSTR lpszSubKey , LPCTSTR

lpszValueName );

参 数

hKeyRoot

表 示 注 册 表 中 的 一 个 当 前 打 开 主 键 , 或 是 下 列 预 定 义 的 保 留 句 柄 值 的 任 何一 个 :

  • HKEY_CLASSES_ROOT

  • HKEY_CURRENT_USER

  • HKEY_LOCAL_MACHINE

  • HKEY_USERS

lpszSubKey

指 向 一 个 以 空 字 符 结 尾 的 字 符 串 , 该 字 符 串 包 含 了 与 某 个 值 关 联 的 子 键的 名 字 。 这 个 参 数 可 以 是 空 或 是 一 个 指 向 空 字 符 串 的 指 针 。 如 果 这 个 参数 是 NULL , 则 该 值 被 添 加 到 由 hKeyRoot 参 数 指 定 的 主 键 中 。

lpszValueName

指 向 一 个 包 含 要 获 取 的 值 的 名 字 的 字 符 串 。 如 果 这 个 名 字 的 值 在 主 键 中没 有 给 出 , 则 函 数 将 它 添 加 到 该 主 键 中 。

说 明

此 成 员 函 数 用 来 将 工 具 条 控 件 的 状 态 保 存 到 由 参 数 指 定 的 注 册 表 中 的 位 置 。

请 参 阅 CToolBarCtrl::RestoreState

CToolBarCtrl:: SetAnchorHighlight

BOOL SetAnchorHighlight( BOOL fAnchor = TRUE );

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

fAnchor

指 示 定 位 加 亮 是 否 有 效 。 如 果 这 个 值 是 非 零 值 , 则 定 位 加 亮 将 是 有 效 的 。如 果 这 个 值 是 零 , 则 不 允 许 定 位 加 亮 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETANCHORHIGHLIGHT 的 行 为 , 就 像在 “ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: GetAnchorHighlight

CToolBarCtrl:: SetBitmapSize

BOOL SetBitmapSize( CSize size );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

size

位 图 图 像 的 以 像 素 表 示 的 宽 度 和 高 度 。

说 明

此 成 员 函 数 用 来 设 置 要 被 添 加 到 一 个 工 具 条 控 件 中 的 实 际 位 图 图 像 的 尺 寸 。

只 有 在 向 工 具 条 中 添 加 位 图 之 前 才 调 用 这 个 函 数 。 如 果 应 用 程 序 不 显 式 地 设 置位 图 的 尺 寸 , 则 它 的 缺 省 值 为 16 × 15 像 素 。

请 参 阅 CToolBarCtrl::SetButtonSize, CToolBarCtrl::GetItemRect

CToolBarCtrl:: SetButtonInfo

BOOL SetButtonInfo( int nID , TBBUTTONINFO* ptbbi );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

按 钮 标 识 符 。

ptbbi

一 个 指 向 用 来 接 收 按 钮 信 息 的 TBBU T T ONINFO 结 构 的 指 针 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETBUTTONINFO 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: GetButtonInfo

CToolBarCtrl:: SetButtonSize

BOOL SetButtonSize( CSize size );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

size

按 钮 的 以 像 素 表 示 的 宽 度 和 高 度 。

说 明

此 成 员 函 数 用 来 设 置 工 具 条 控 件 中 的 按 钮 的 尺 寸 。 按 钮 的 尺 寸 必 须 总 是 至 少 与它 所 装 入 的 位 图 的 尺 寸 一 样 。

只 有 在 向 工 具 条 中 添 加 位 图 之 前 才 调 用 这 个 函 数 。 如 果 应 用 程 序 不 显 式 地 设 置按 钮 的 尺 寸 , 则 它 的 缺 省 值 为 24 × 22 像 素 。

请 参 阅 CToolBarCtrl::SetBitmapSize, CToolBarCtrl::GetItemRect

CToolBarCtrl:: SetButtonStructSize

void SetButton Struc tSize( int n size );

参 数

n size

说 明

TBBUTTON 结 构 的 以 字 节 数 表 示 的 尺 寸 。

此 成 员 函 数 用 来 指 定 TBBUTTON 结 构 的 大 小 。 如 果 你 想 在 TBBUTTON 结 构中 保 存 额 外 的 数 , 你 可 以 从 TBBUTTON 派 生 一 个 新 的 结 构 , 增 加 你 需 要 的 成员 , 或 者 创 建 一 个 新 的 结 构 , 该 结 构 包 含 一 个 TBBUTTON 结 构 作 为 它 的 第 一

个 成 员 。 然 后 你 可 以 调 用 这 个 函 数 来 向 工 具 条 控 件 给 出 此 新 结 构 的 大 小 。

参 见 CToolBarCtrl::AddButtons 可 以 获 得 有 关 TBBUTTON 结 构 的 更 多 信 息 。

请 参 阅 CToolBarCtrl:: Create,CToolBarCtarl::AddButtons CToolBarCtrl::InsertButton,CToolBarCtrl::GetButton

CToolBarCtrl:: SetButtonWidth

BOOL SetButtonWidth( int cxMin , int cxMax );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

cxMin

以 像 素 表 示 的 最 小 按 钮 宽 度 。 工 具 条 按 钮 的 宽 度 不 能 小 于 这 个 值 。

cxMax

以 像 素 表 示 的 最 大 按 钮 宽 度 。 如 果 按 钮 文 本 太 宽 , 则 控 件 用 省 略 的 点 来 显式 它 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETBUTTONWIDTH 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: SetButtonInfo

CToolBarCtrl:: SetCmdID

BOOL SetCmdID( int nIndex , UINT nID );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nIndex

要 设 置 其 命 令 ID 的 按 钮 的 从 零 开 始 的 索 引 。

nID

要 给 选 定 的 按 钮 设 置 的 命 令 ID 。

此 成 员 函 数 用 来 设 置 指 定 按 钮 的 命 令 标 识 符 , 当 该 按 钮 被 按 下 时 , 此 命 令 标 识符 将 被 发 送 给 属 主 窗 口 。

请 参 阅 CToolBarCtrl::CommandToIndex, CToolBarCtrl::GetButton, CToolBarCtrl::AddButtons, CToolBarCtrl::InsertButton

CToolBarCtrl:: SetDisabledImageList

CImageList* SetDisabledImageList( CImageList* pImageList );

返 回 值

一 个 指 向 CImageList 对 象 的 指 针 , 该 对 象 先 前 被 工 具 条 控 件 用 来 显 示 无 效 按 钮图 像 。

参 数

pImageList

一 个 指 向 CImageList 对 象 的 指 针 , 该 对 象 包 含 了 要 被 工 具 条 控 件 用 来 显示 无 效 按 钮 图 像 的 图 像 。

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETDISABLEDIMAGELIST 的 行 为 , 就像 在 “ Platform SDK ” 中 描 述 的 一 样 。

SetDisabledImageList 的 MFC 实 现 使 用 的 是 一 个 包 含 工 具 条 控 件 的 无 效 按 钮 图像 的 CImageList 对 象 , 而 不 是 一 个 图 像 列 表 句 柄 。

请 参 阅 CToolBarCtrl:: GetDisabledImageList, CToolBarCtrl:: SetHotImageList, CToolBarCtrl:: SetimageList

CToolBarCtrl:: SetDrawTextFlages

DWORD SetDrawTextFlage( DWORD dwMask , D W O R D dwDTFlags );

返 回 值

返 回 一 个 包 含 先 前 的 文 本 绘 制 标 志 的 DWORD 。

参 数

dwMask

在 W in32 函 数 D rawText 中 指 定 的 一 个 或 多 个 DT_ 标 志 的 组 合 。 该 组 合说 明 了 在 绘 制 文 本 时 使 用 dwDTFlags 中 的 哪 些 位 。

dwDTFlags

在 W in32 函 数 D rawText 中 指 定 的 一 个 或 多 个 DT_ 标 志 的 组 合 。 该 组 合表 明 如 何 绘 制 按 钮 文 本 。 当 按 钮 文 本 被 绘 制 时 , 这 个 值 被 传 递 给DrawTex t。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETDRAWTEXTFLAGS 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

此 成 员 函 数 用 来 设 置 W in32 函 数 DrawText 中 的 标 志 。 该 函 数 用 来 绘 制 指 定 矩形 中 的 文 本 , 根 据 所 设 置 的 标 志 来 格 式 化 字 符 串 。

CToolBarCtrl:: SetExtendedStyle

DWORD SetExtendedStyle( DWORD dwExStyle ) const;

返 回 值

返 回 一 个 代 表 先 前 的 扩 展 风 格 的 DWORD 。 参 见 “ Platform SDK ” 中 的 “ 工 具条 扩 展 风 格 ” 可 以 获 得 风 格 的 列 表 。

参 数

dwExStyle

指 定 新 的 扩 展 风 格 的 值 。 这 个 参 数 可 以 是 工 具 条 风 格 的 一 个 组 合 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETEXTENDEDSTYLE 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: GetExtendedStyle

CToolBarCtrl:: SetHotImageList

CImageList* SetHotImageList( CImageList* pImageList );

返 回 值

返 回 一 个 指 向 CImageList 对 象 的 指 针 , 该 对 象 先 前 被 工 具 条 控 件 用 来 显 示 热 点按 钮 图 像 。

参 数

pImageList

一 个 指 向 CImageList 对 象 的 指 针 , 该 对 象 包 含 的 图 像 将 被 工 具 条 控 件 用来 显 示 热 点 按 钮 图 像 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETHOTIMAGELIST 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

SetHotImageList 的 MFC 实 现 使 用 的 是 一 个 包 含 工 具 条 控 件 的 热 点 按 钮 图 像 的

CImageList 对 象 , 而 不 是 一 个 图 像 列 表 句 柄 。

当 指 针 位 于 一 个 热 点 按 钮 上 时 , 该 按 钮 将 被 加 亮 显 示 。

请 参 阅 CToolBarCtrl:: GetHotImageList, CToolBarCtrl:: SetDisabledImageList, CToolBarCtrl:: SetImage L ist

CToolBarCtrl:: Set H otItem

int SetHotItem( int nHot );

返 回 值

返 回 先 前 的 热 点 项 的 索 引 , 如 果 没 有 热 点 项 则 返 回 -1 。

nHot

将 要 被 变 成 热 点 的 项 的 从 零 开 始 的 索 引 号 。 如 果 这 个 值 是 -1 , 则 没 有 一个 项 将 被 变 成 热 点 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETHOTITEM 的 行 为 , 就 像 在 “ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: GetHotItem

CToolBarCtrl:: SetImageList

CImageList* Set ImageList( CImageList* pImageList );

返 回 值

返 回 一 个 指 向 CImageList 对 象 的 指 针 , 该 对 象 先 前 被 工 具 条 控 件 用 来 显 示 处 于缺 省 状 态 的 按 钮 图 像 。

pImageList

一 个 指 向 CImageList 对 象 的 指 针 , 该 对 象 包 含 的 图 像 将 被 工 具 条 控 件 用来 显 示 缺 省 状 态 按 钮 图 像 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETIMAGELIST 的 行 为 ,就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

SetImageList 的 MFC 实 现 使 用 的 是 一 个 包 含 工 具 条 控 件 的 缺 省 状 态 按 钮 图 像 的

CImageList 对 象 , 而 不 是 一 个 图 像 列 表 句 柄 。

请 参 阅 CToolBarCtrl:: GetImageList, CToolBarCtrl:: SetDisabledImageList, CToolBarCtrl:: SetHotImageList

CToolBarCtrl:: SetIndent

BOOL Se t Indent( int iIndent );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

iIndent

这 个 值 指 定 了 以 像 素 表 示 的 缩 进 。

说 明

此 处 于 函 数 用 来 设 置 一 个 工 具 条 控 件 中 的 第 一 个 按 钮 的 缩 进 。

CToolBarCtrl:: SetInsertMark

void SetInsert M ark ( TBINSERTMARK* ptbim )

参 数

ptbim

一 个 指 向 包 含 插 入 标 记 的 TBINSERTMARK 结 构 的 指 针 。

说 明

此 成 员 函 数 用 来 实 现 W in32 消 息 TB_SETINSERTMARK 的 行 为 , 就 像 在“ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: GetInsert M ark

CToolBarCtrl:: SetInsertMarkColor

COLORREF SetInsertMarkColor( COLORREF clrNew );

返 回 值

返 回 一 个 包 含 先 前 的 插 入 标 记 颜 色 的 COLORREF 值 。

参 数

clrNew

一 个 包 含 新 的 插 入 标 记 颜 色 的 COLORREF 值。

说 明

此 成 员 函 数 用 来 实 现 W in32 消息 TB_SETINSERTMARKCOLOR 的 行 为 , 就 像在 “ Platform SDK ” 中 描 述 的 一 样 。

请 参 阅 CToolBarCtrl:: Get Insert M arkColor

CToolBarCtrl:: SetMaxTextRows

BOOL SetMaxTextRows( int iMaxRows );

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

iMaxRows

要 设 置 的 最 大 行 数 。

说 明

此 成 员 函 数 用 来 设 置 显 示 在 一 个 工 具 条 按 钮 中 的 文 本 的 最 大 行 数 。

请 参 阅 CToolBarCtrl:: GetMaxTextRows

CToolBarCtrl:: SetOwner

void SetOwner( CWnd* pWnd );

参 数

pWnd

指 向 将 要 成 为 工 具 条 控 件 的 新 属 主 窗 口 的 CWnd 或 CWnd 派 生 对 象 的 指

此 成 员 函 数 用 来 为 工 具 条 控 件 设 置 属 主 窗 口 。 属 主 窗 口 是 接 收 来 自 该 工 具 条 的通 知 的 窗 口 。

请 参 阅 CToolBarCtrl::Create

CToolBarCtrl:: SetRows

void SetRows( int nRows , BOOL bLarger , LPRECT lpRect );

参 数

nRows

需 要 的 行 数 。

bLarger

如 果 工 具 条 不 能 调 整 到 需 要 的 行 数 , 此 参 数 指 明 是 使 用 更 多 的 行 还 是 使 用更 少 的 行 。

lpRect

指 向 CRect 对 象 或 RECT 结 构 , 该 对 象 或 结 构 用 来 接 收 工 具 条 的 新 的 边 界矩 形 。

此 成 员 函 数 用 来 请 求 工 具 条 控 件 将 它 自 己 调 整 为 需 要 的 行 数 。

如 果 该 工 具 条 不 能 将 自 己 调 整 为 需 要 的 行 数 , 则 它 将 根 据 bLarger 的 值 把 自 己调 整 为 下 一 个 较 大 的 或 较 小 的 尺 寸 。 如 果 bLarger 是 TRU E , 则 新 行 数 将 大 于请 求 的 行 数 。 如 果 bLarger 是 FALSE , 则 新 行 数 将 小 于 请 求 的 行 数 。

如 果 按 钮 可 以 被 安 排 为 给 定 的 行 数 , 则 该 给 定 值 是 有 效 的 , 并 且 所 有 行 都 具 有相 同 的 按 钮 数 ( 可 能 除 了 最 后 一 行 ) 。 例 如 , 一 个 包 含 四 个 按 钮 的 工 具 条 不 能被 调 整 为 三 行 , 因 为 这 样 的 安 排 将 使 最 后 两 行 都 较 短 。 如 果 你 尝 试 要 将 它 调 整为 三 行 , 则 如 果 bLarge 是 TRU E , 则 得 到 的 是 四 行 , 如 果 bLarger 是 FALSE , 则 得 到 的 是 两 行 。

如 果 工 具 条 中 有 分 隔 线 , 则 有 关 何 时 给 定 行 数 有 效 的 规 则 就 更 复 杂 了 。 按 钮 的安 排 可 以 这 样 考 虑 : 按 钮 组 ( 组 中 的 第 一 个 按 钮 之 前 和 最 后 一 个 按 钮 之 后 都 有分 隔 线 ) 不 会 被 分 行 排 列 , 除 非 它 们 不 能 在 一 行 中 安 排 。

如 果 一 个 组 不 能 正 好 占 据 完 一 行 , 则 下 一 个 组 将 从 下 一 个 行 开 始 , 即 使 是 这 个组 可 以 在 上 一 个 大 组 结 束 的 行 中 完 全 安 排 。 这 个 规 则 的 目 的 就 是 使 两 个 大 组 之间 的 分 隔 更 加 显 而 易 见 。 这 样 导 致 的 垂 直 分 隔 线 被 作 为 行 计 算 。

还 要 注 意 , SetRows 成 员 函 数 将 总 是 选 择 会 获 得 最 小 的 工 具 条 尺 寸 的 版 面 规 划 。创 建 一 个 具 有 TBSTYLE_WRAPABLE 风 格 的 工 具 条 , 然 后 调 整 这 个 控 件 将 只是 简 单 地 根 据 给 定 的 控 件 宽 度 应 用 这 个 方 法 来 画 出 轮 廓 。

只 有 使 用 TBSTYLE_WRAPABLE 风 格 创 建 的 函 数 才 可 以 调 用 这 个 函 数 。

请 参 阅 Toolbar styles in CToolBarCtrl::Create, CToolBarCtrl::GetRows

CToolBarCtrl:: SetState

BOOL SetState( int nID , UINT nState );

返 回 值

如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 零 。

参 数

nID

按 钮 的 命 令 标 识 符 。

nState

状 态 标 志 。 它 可 以 是 CToolBarCtrl::AddButtons 中 列 出 的 按 钮 状 态 值 的 一个 组 合 。

说 明

此 成 员 函 数 用 来 设 置 一 个 工 具 条 控 件 中 的 指 定 按 钮 的 状 态 。

如 果 你 想 要 设 置 多 于 一 个 的 按 钮 状 态 , 这 个 函 数 是 特 别 方 便 的 。 如 果 只 要 设 置一 个 状 态 , 可 以 使 用 下 列 的 成 员 函 数 : EnableButton , CheckButton , H ideButton , Indeterminate , 或 PressButton 。

请 参 阅 CToolBarCtrl::GetState, CToolBarCtrl::AddButtons,

CToolBarCtrl::EnableButton, CToolBarCtrl::CheckButton,CToolBarCtrl::HideButton, CToolBarCtrl::Indeterminate,CToolBarCtrl::PressButton

CToolBarCtrl:: SetStyle

void SetStyle( DWORD dwStyle );

参 数

dwStyle

一 个 包 含 工 具 条 控 件 风 格 的 组 合 的 DWORD , 就 像 在 “ Platform SDK ” 中描 述 的 一 样 。

说 明

此 成 员 函 数 用 来 设 置 一 个 工 具 条 控 件 的 风 格 。

请 参 阅 CToolBarCtrl:: GetStyle

CToolBarCtrl:: SetToolTips

void SetToolTips( CToolTipCtrl* pTip );

参 数

pTip

说 明

指 向 一 个 CToolTipCtrl 对 象 的 指 针 。

此 成 员 函 数 用 来 使 一 个 工 具 提 示 控 件 与 一 个 工 具 条 控 件 相 关 联 。

请 参 阅 CToolBarCtrl::GetToolTips, CToolBarCtrl: Handling Tool Tip Notifications, CtoolTipCtrl