返 回
目 录
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 对 象 , 通 常 你 应 该 遵 循 下 面 的 这 些 步 骤 :
-
构 造 该 CToolBarCtrl 对 象 。
-
调用 Create 来 创 建 W indows 工 具 条 通 用 控 件 并 将 它 与 该
CToolBarCtrl 对 象连 接 。 通 过 使 用 风 格 来 指 定 工 具 条 的 风 格 , 如 对 一 个 透 明 的 工 具 条 使 用TBSTYLE_ TRANSPARENT , 或 对 一 个 支 持 风 格 按 钮 的 工 具 条 使 用TBSTYLE_DROPDOW N 。
-
指 明 你 希 望 按 钮 在 工 具 条 上 如 何 显 示 :
-
给 按 钮 使 用 位 图 图 像 , 通 过 调 用 AddBitmap 将 按 钮 位
图 添 加 到 工 具 条 中 。
-
给 按 钮 使 用 来 自 一 个 图 像 列 表 的 图 像 , 通 过 调 用
SetImageList ,
-
SetHotImageList ,或 SetDisabledImageList 来 指 定 图 像 列 表 。
- 给 按 钮 使 用 字 符 串 标 签 , 通 过 调 用 AddString 和 /或
AddStrings 来 将 字 符串 添 加 到 工 具 条 中 。
-
通 过 调 用 AddButtons 将 按 钮 结 构 添 加 到 工 具 条 中 。
-
如 果 你 希 望 在 一 个 不 是 CFrameWnd 的 属 主 窗 口 中 的 工 具
条 具 有 工 具 提 示 , 则 你 必 须 在 工 具 条 的 属 主 窗 口 中 处 理 TTN_NEEDTEXT 消 息 , 就 像 在CToolBarCtrl : 处 理 工 具 提 示 通 知 中 描 述 的 一 样 。 如 果 工 具 条 的 父 窗 口 是由 CFrameWnd 派 生 而 来 的 , 则 你 不 用 作 任 何 额 外 的 努 力 就 可 以 显 示 工 具提 示 , 因 为 CFrameWnd 提 供 了 一 个 缺 省 的 处 理 函 数 。
-
如 果 你 希 望 能 够 让 用 户 定 制 工 具 条 , 则 在 属 主 窗 口 中
处 理 定 制 通 知 消 息 , 就 像 在 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