| VB 5.0下工具条的制作 |
| 返回 |
工 具 条(Tool bar) 是Windows 环 境 下 应 用 程 序 常 用 的 界 面 元 素。 把 菜 单 中 常 用 的 命 令 做 成 按 钮 安 排 在 工 具 条 中, 配 上 适 当 的 图 标 符 号 和 文 本 提 示, 确 实 极 大 地 方 便 了 用 户。 以Microsoft Word 7.0 for Windows 95 的 工 具 条 为 例, 其 中 的 内 容 和 功 能 非 常 丰 富。Word 7.0 工 具 条 中 不 仅 包 含 与 文 件 操 作 等 有 关 的 常 规 图 标 按 钮, 还 有 设 置 字 体 字 号 等 等 的 组 合 框(Combo box)。 按 钮 之 间 可 以 分 组, 例 如 设 置 段 落 对 齐 方 式 的 一 组 按 钮, 同 组 中 的 按 钮 每 次 只 允 许 有 一 个 被 按 下, 按 下 一 个 按 钮 时, 同 组 中 其 它 按 钮 自 动 弹 起。 另 外,Word 7.0 的 工 具 条 还 有 用 户 裁 剪(Customize) 功 能。 用 户 在 工 具 条 上 双 击 鼠 标 时, 工 具 条 弹 出 一 个 裁 剪 对 话 框, 用 户 可 以 隐 藏、 显 示 以 及 重 新 排 列 工 具 条 中 的 按 钮。 如 果 在 我 们 自 己 开 发 的 软 件 界 面 中 加 上 这 样 的 工 具 条, 我 们 的 软 件 就 可 以 与 商 业 软 件 相 媲 美 了。 ---- 在 诸 多Windows 应 用 程 序 开 发 平 台 中,Microsoft Visual BASIC 以 易 学 易 用、 功 能 强 大 的 优 点 特 出 独 立, 成 为 开 发Windows 应 用 程 序 的 首 选 平 台 之 一。 在VB 4.0 及 以 前 的 版 本 中, 开 发 象Word 7.0 中 的 工 具 条 还 是 颇 费 辛 苦 的。 一 般 思 路 是 在 窗 体(Form) 中 安 放 一 个 图 片 框(PictureBox) 作 为 容 器(Container), 再 往 其 中 加 入 图 象(Image) 控 件, 用 图 象 控 件 载 入 图 标 来 模 拟 按 钮。 对 多 个 按 钮 的 控 制 要 分 别 完 成, 管 理 较 为 复 杂。 在VB 5.0 中, 系 统 提 供 了 一 个 专 门 的 工 具 条 控 件Toolbar。 用Toolbar 来 实 现 类 似Word 7.0 中 的 工 具 条 非 常 方 便。 工 具 条 控 件Toolbar 简 介 ---- 1. 在 工 具 箱 中 加 入Toolbar ---- 工 具 条 控 件Toolbar 不 在VB 5.0 工 具 箱(Toolbox) 的 常 规 标 准 控 件 之 列, 因 此 在 首 次 安 装VB 5.0 后, 工 具 箱 中 并 没 有Toolbar。 在 工 具 箱 中 加 入Toolbar 要 通 过Project 菜 单 中 的Components 命 令, 该 命 令 弹 出 一 个 选 择 安 装 组 件 的 窗 口。 在Components 窗 口 的Controls 组 中 找 到“Microsoft Windows Common Controls 5.0” 项, 单 击 标 记 该 项, 然 后 单 击“ 确 定” 按 钮,Toolbar 和 另 外 一 些 控 件 就 加 入 工 具 箱 了。 ---- 2. Toolbar 的 功 能 ---- Toolbar 中 可 以 加 入 按 钮, 每 个 按 钮 都 可 以 载 入 自 己 的 图 象、 设 置 标 题(Caption)。 还 可 以 为 每 个 按 钮 设 置 简 短 的 提 示 字 符 串, 程 序 运 行 时, 当 鼠 标 指 针 移 到 按 钮 上 时, 在 指 针 附 近 会 自 动 浮 出 提 示 字 符 串。 在 程 序 运 行 时, 可 以 随 时 增 加 或 删 除 按 钮。Toolbar 为 其 中 的 按 钮 提 供 了 分 组 功 能, 用 户 只 需 简 单 地 设 置 一 个 按 钮 的Style 属 性 就 能 实 现 按 钮 之 间 的 分 组。Toolbar 同 时 还 是 一 个 容 器 类 控 件, 可 以 在 其 中 加 入 组 合 框 等 其 它 控 件。Toolbar 的AllowCustomize 属 性 允 许 用 户 在 程 序 运 行 时 双 击 工 具 条 对 其 中 的 内 容 进 行 裁 剪。 根 据 这 些 功 能, 用 户 就 可 以 轻 而 易 举 地 在 自 己 开 发 的 应 用 程 序 中 加 入 类 似Word 7.0 风 格 的 工 具 条 了。 Toolbar 的 制 作
---- Toolbar 的 制 作 包 括 以 下 步 骤: 在 窗 体 中 加 入Toolbar 控 件; 在Toolbar 中 加 入 按 钮; 为 按 钮 载 入 图 象 并 设 置 其 它 属 性。 ---- 1. 在 窗 体 中 加 入Toolbar 控 件 ---- 双 击 工 具 箱 中 的Toolbar,Toolbar 就 自 动 加 入 窗 体 并 放 置 在 窗 体 客 户 区 的 顶 端。 如 果 要 把Toolbar 放 置 在 其 它 位 置, 可 以 在 属 性 窗 口 中 改 变Toolbar 的Align 属 性。Toolbar 的Align 属 性 中 可 供 选 择 的 有5 个 值: ---- 0 - vbAlignNone, 不 对 齐 ---- 2. 在Toolbar 中 加 入 按 钮 ---- 用 鼠 标 右 键 单 击Toolbar, 会 弹 出Toolbar 的 属 性 菜 单。 单 击 菜 单 的 最 后 一 项“Properties”, 会 弹 出Toolbar 的 属 性 页(Property Pages) 窗 口。 在 属 性 页 窗 口 中 可 以 设 置 控 件 的 一 些 非 常 规 属 性。 ---- 在Toolbar 属 性 页 中 选Buttons 组, 其 中 的“Insert Button” 和“Remove Button” 两 个 按 钮 分 别 用 于 在Toolbar 中 加 入 和 删 除 按 钮。Toolbar 控 件 的 所 有 按 钮 构 成 一 个 按 钮 集 合(Collection), 名 为Buttons。 在Toolbar 中 加 入 和 删 除 按 钮 实 际 上 是 对Toolbar 的Buttons 集 合 进 行 加 入 和 删 除 元 素 操 作。 对 于Toolbar 中 各 个 按 钮 的 访 问, 也 是 通 过Buttons 集 合 进 行 的。 用“Insert Button” 加 入 按 钮 后, 可 以 在Toolbar 属 性 页Buttons 中 设 置 新 加 入 的 按 钮 的 属 性。 这 些 属 性 包 括: 索 引(Index)、 标 题(Caption)、 描 述 信 息(Description)、 关 键 字(Key)、 初 态(Value)、 模 式(Style)、 宽 度(Width)、 提 示 信 息(ToolTipText) 等。 ---- (1) Index 和Key
Toolbar1.Buttons(1)
---- (2) Caption ---- (3) ToolTipText 和Description ---- (4) Style ---- 0 - tbrDefault, 一 般 按 钮 ---- 一 般 按 钮 与 普 通 的 按 钮 控 件 在 操 作 风 格 上 基 本 相 同。 开 关 按 钮 具 有 二 值 状 态: 按 下 和 放 开。 编 组 按 钮 用 于 实 现 按 钮 之 间 的 分 组, 相 邻 的 编 组 按 钮 都 属 于 同 一 组。 编 组 按 钮 同 时 也 是 开 关 按 钮, 同 组 内 至 多 只 允 许 一 个 按 钮 处 于 按 下 状 态。 分 隔 按 钮 在Toolbar 中 并 不 显 示, 而 是 把 它 左 右 的 按 钮 分 隔 开 来。Toolbar 中 的 按 钮 本 来 是 紧 挨 着 排 列 的, 使 用 分 隔 按 钮 可 以 让 同 类 或 同 组 的 按 钮 并 列 排 放 而 与 邻 近 的 组 分 开。 占 位 按 钮 在Toolbar 中 也 不 显 示, 它 仅 仅 起 到 占 位 的 作 用。 在 占 位 按 钮 处 可 以 安 放 其 它 控 件 诸 如 组 合 框 之 类。 占 位 按 钮 是 唯 一 可 以 设 置 宽 度(Width) 属 性 的 按 钮。 ---- (5) Value ---- (6) Width ---- 3. 为 按 钮 载 入 图 象 ---- 工 具 条 按 钮 的 一 个 突 出 特 点 是 包 含 形 象 的 图 象, 用 以 提 示 按 钮 的 功 能。 在Toolbar 中 加 入 所 需 的 按 钮 后, 就 可 以 为 每 个 按 钮 载 入 图 象 了。Toolbar 按 钮 与 普 通 的Image 和PictureBox 不 同, 它 们 没 有Picture 属 性。 要 给Toolbar 按 钮 载 入 图 象 需 要 借 助 于 另 一 个 控 件ImageList。 ---- ImageList 是 在“Microsoft Windows Common Controls 5.0” 中 与Toolbar 一 并 提 供 的 控 件。 该 控 件 不 单 独 使 用, 而 是 专 门 为 其 它 控 件 提 供 图 象 库。Toolbar 中 按 钮 的 图 象 就 要 从ImageList 的 图 象 库 中 提 取。 ---- 为Toolbar 按 钮 载 入 图 象 的 方 法 是: 首 先 在Toolbar 所 在 的 窗 体 中 加 入ImageList 控 件, 其 次 在ImageList 中 加 入 图 象, 然 后 建 立Toolbar 和ImageList 的 关 联 关 系, 最 后 从ImageList 的 图 象 库 中 选 择 图 象 载 入Toolbar 的 按 钮。 ---- (1) 在ImageList 中 加 入 图 象 ---- 单 击“Insert Picture” 按 钮 可 以 在 图 象 库 中 插 入 图 片。 系 统 弹 出 一 个 选 择 图 片(Select picture) 的 窗 口, 从 该 窗 口 中 可 以 选 定 一 个 或 多 个 图 象 文 件。 单 击“ 打 开” 按 钮, 选 定 的 图 片 就 插 入 图 象 库 了。ImageList 允 许 插 入 位 图 文 件(.bmp) 和 图 标(.ico) 文 件。 ---- (2) 建 立Toolbar 和ImageList 的
关 联 关 系 ---- (3) 为Toolbar 按 钮 载 入 图 象
Toolbar 的 常 用 属 性 和 方 法
---- 1. 常 用 属 性 ---- (1) ImageList ---- (2) AllowCustomize ---- (3) ShowTips ---- (4) ToolTipText ---- 2. 常 用 方 法 ---- 对Toolbar 的 控 制 主 要 是 针 对 其 中 的 按 钮,Toolbar 中 的 按 钮 是 作 为 一 个 名 为Buttons 的 集 合 对 象 供 程 序 访 问 的。Buttons 的 常 用 方 法 包 括 增 加 一 个 按 钮(Add)、 删 除 一 个 按 钮(Remove) 和 删 除 所 有 按 钮(Clear)。 ---- (1) Add ---- Toolbar 控 件 名.Buttons.Add(index, key, caption, style, image) ---- 整 型 参 数index 指 定 新 增 按 钮 的 索 引 值, 该 索 引 值 也 决 定 了 按 钮 在Toolbar 中 的 位 置。index 参 数 可 以 省 略( 注 意, 省 略index 参 数 时 其 后 的 逗 号 要 照 写), 缺 省 情 况 下 新 增 按 钮 加 到Buttons 集 合 的 最 后。 ---- 字 符 串 型 参 数key 指 定 新
增 按 钮 的 关 键 字, 该 参 数 可 以 省 略。 ---- 整 型 参 数style 指 定 新 增 按 钮 的Style 属 性, 其 合 法 取 值 有5 个, 参 见 前 面Style 属 性 的 介 绍。 该 参 数 可 以 省 略, 缺 省 时 自 动 取0(tbrDefault)。 ---- 参 数image 指 定 给 新 增 按 钮 载 入 的 图 象, 图 象 必 须 是 与 该Toolbar 相 关 联 的ImageList 控 件 图 象 库 中 的 一 个。image 参 数 可 以 是 一 个 整 数, 对 应ImageList 图 象 库 中 某 个 图 片 的Index 值, 也 可 以 是 一 个 字 符 串, 对 应 图 片 的 关 键 字Key。 ---- (2) Remove ---- (3) Clear 在 程 序 中 生 成Toolbar
---- 以 上 从 设 计 阶 段(design time) 和 程 序 角 度 介 绍 了Toolbar 的 生 成 和 使 用。 下 面 我 们 结 合 实 例 来 看 看 如 何 为 自 己 的 应 用 程 序 添 加 功 能 强 大、 方 便 用 户 的 工 具 条。 ---- 下 面 的 例 子 中, 窗 口 工 具 条 内 有 两 个 分 别 代 表 打 开 文 件 和 文 件 存 盘 的 按 钮, 另 外 还 有 一 个 设 置 窗 口 客 户 区 颜 色 的 组 合 框。 为 免 去 烦 琐 地 介 绍 工 具 条 的 设 置 过 程, 在 窗 体 制 作 时 仅 仅 加 入 一 个Toolbar 控 件 和 一 个ImageList 控 件, 另 外 在Toolbar 中 加 入 一 个 组 合 框ComboBox。 其 它 所 有 与Toolbar 的 设 置 和 控 制 有 关 的 操 作 都 在 程 序 代 码 中 实 现, 包 括 为ImageList1 加 入 图 片 库、 建 立Toolbar1 和ImageList1 的 关 联 关 系、 在Toolbar1 中 加 入 按 钮 并 为 每 个 按 钮 设 置 属 性、 对Combo1 进 行 初 始 化 等 等。 下 面 给 出 窗 体Form1 的 程 序 代 码。 Private Sub Form_Load()
|