窗 口 句 柄 传 递 给 该 函 数, 该 函 数 将 在 所 有 顶 层 窗 口之 间 循 环。 我 们 希 望 得 到 的 是 后 一 种 方
式, 所 以 我 们首 先 要 获 取 自 己 应 用 的 顶 层 窗 口 句 柄。
当 我 们 在 顶层 窗 口 之 间 循 环 时, 用 #A(#函 数 返 回 它 们 的 标 题。这 个 函 数 有 三 个
参 数, 窗 口 句 柄, 一 个 用 以 返 回 标 题的 字 符 串 以 及 返 回 字 符 串 的 最 大 长 度。 我 们 要 好 好 利用
最 后 一 个 参 数, 因 为 我 们 并 不 想 要 匹 配 整 个 窗 口 标题, 而 是 要 匹 配 能 保 证 我 们 发 现 所 要 寻
找 的 窗 口 的 长度。 例 如, 如 果 我 们 将“$L#J传 递 给 这 个 窗 口 函数 时, 这 个 函 数 判 断
文 本 的 长 度 并 将 它 加 !, 这 样 只 将我 们 将 要 比 较 的 串 的 长 度 传 递 给 了 #A(#函 数,
该函 数 在 顶 层 窗 口 之 间 循 环, 寻 找 以 该 字 符 串 开 头 的 窗口。 如 果 我 们 发 现 了 一 个 匹 配, 就 设
置 结 束 循 环 标志, 退 出 循 环 并 继 续 执 行。 如 果 我 们 没 有 发 现 匹 配,将 在 循 环 到 我 们 自 己 的 应
用 窗 口 时 退 出 循 环。 这 时,我 们 简 单 地 退 出 函 数。
自去 年 月 发 布 以 来, 至 今 已 有 一 年 多 了。 但 是 笔 者 却 时常 看 到 不 少 用 户 对
的 新 特 性 缺 乏 了 解, 在 开 发 中 不能 充 分 的 利 于 的 新 特 性-或 是 向 笔 者 提 出 一 些 属 于是
不 同 版 本 间 差 异 的 问 题, 其 主 要 原 因 一 方 面 由 于 许多 有 经 验 的, 较 早 从 事 开 发 的 程 序 员 是
从 ?以 下 开 始的, 他 们 向 初 学 者 传 授 的 编 程 经 验 较 多 的 以 ?为 主,而 且 市 场 上 大 多 数 的
的 技 术 书 籍 也 是 以 ?为 基础, 而 另 一 方 面 版 本 的 升 级 同 老 版 本 相 比 有 了 许
多根 本 性 的 改 变, 它 所 新 增 及 扩 充 的 功 能 要 较 以 往 的 版本 升 级 为 多。 从 本 期 起, 我 们 将 陆 续
介 绍 一 些 的 新 特 性。 在 窗 口 的 控 件 中 增 加 了 几 个 在 ;中新 增 的
控 件, 如 标 签 形 式(A&.+)、 树 型 视 图 ( AB)、列 表 视 图( )#B), 而 且 这 些 控
件 在 >(的 版 本 中 也能 正 常 使 用, 这 样 就 大 大 丰 富 了 窗 口 的 表 现 形 式, 特别 是 针 对
>(平 台。
我 们 首 先 来介 绍 树 型 视 图 控 件。
树 视 图 控 件最 适 合 显 示 具 有 层 次 关 系 的 数 据, 在 ;中 文 件 和文 件 夹( 子 目 录)
之 间 的 关 系 就 是 用 树 型 视 图 来 表 现的。 在 数 据 库 中 树 型 视 图 是 一 个 管 理 大 量 数 据 的 一 个好
方 法, 因 为 用 户 只 需 简 单 地 点 击 鼠 标 就 可 以 选 择 自己 需 要 的 数 据。
当 我 们 对 数据 的 表 现 有 以 下 要 求 时, 我 们 可 首 先 考 虑 使 用 树 型 视图 控 件:
:显 示 层 次 结构 中 元 素 之 间 的 关 系
:元 素 在 层 次 结 构 之 间 漫 游( 元素 间 的 拷 贝、 移 动 等)
:描 述 每 个 元 素 相 关 信 息
:将 大 量 数 据 检 索 的 过 程 划 分 为若 干 步 骤, 只 表 现 其 中 需 要 的 部 分
例 如 在 所 包 含 的 例 子 (&*%中, 就 有 适 用 于 树 型 列 表 的 形 式来 表 现
的 实 例: 在 公 司 的 业 务 部 门 中 有 若 干 名 业 务员, 他 们 每 个 人 分 别 掌 握 着 一 定 数 量 的 客 户,
这 些 客户 都 曾 经 同 本 公 司 签 订 了 一 些 合 同, 每 份 合 同 中 又 包括 有 向 公 司 订 购 的 不 同 的 产 品。
因 此 我 们 需 要 表 现 这些 信 息 中 这 样 的 层 次 关 系: 业 务 员OOOC客 户OOOC合 同OOOC产 品。 又 如 一
个 新 闻 单 位 下 属 了 几 个 不 同 的 部 门, 每个 部 门 有 若 干 记 者, 每 个 记 者 在 不 同 时 期 又 完 成 了
一定 数 量 的 稿 件。 当 这 个 新 闻 单 位 的 主 编 审 稿 或 统 计 记者 工 作 业 绩 时, 也 可 以 采 用 树 型 视
图 的 形 式 表 现 部 门OOOC记 者OOOC稿 件 的 层 次 信 息。
对 树 型 视 图的 编 程 是 窗 口 中 较 为 复 杂 的 部 分, 它 无 法 象 数 据 窗 口那 样 使 用 一 条
#< "函 数 就 可 以 将 数 据 表 现 出 来。 在 中 树 型 视 图 控 件 包 括 了 树 型 视 图
AB"和 树 型 视 图 项 AB#*"两 个 对 象。 其 中 树 型 视 图 对 象 可 以 在 窗 口 画 笔 中 通
过点 击 鼠 标 的 方 式 创 建, 而 树 型 视 图 项 则 必 须 通 过 编 程来 声 明 及 定 义 它 们 的 属 性。
当 您 在 窗 口画 笔 中 用 鼠 标 在 窗 口 上 放 置 了 一 个 树 型 视 图 的 控 件,这 表 明 您 将
认 可 将 在 窗口 的 这 个 位 置 采 用 树 型 视 图 来 表 现 一 些 信 息;
您 可 以 通 过设 置 这 个 控 件 的 属 性 确 定 这 个 控 件 是 否 可 见, 是 否 显示 连 线 等 基 本 属 性。
而 这 时 运 行这 个 窗 口, 您 看 到 的 只 是 这 个 树 型 控 件 的 空 架 子, 其中 没 有 任 何 数 据。
树 型 控 件 的每 一 个 数 据 项 都 是 一 个 AB#*, 而 这 些 树 型 视 图 项 您只 能 在 程 序 中 逐
项 加 入。 一 般 来 讲, 当 数 据 量 很 小 而且 数 据 间 没 有 复 杂 的 关 系 时, 可 以 在 树 型 视 图 创 建 时就
使 用 预 先 直 接 把 各 项 加 入 到 树 视 图 中 。 而 数 据 较多 时, 则 根 据 需 要 来 制 定 树 视 图, 不 要 制