Visual C++ 6.0 编 程 经 验[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 showman 的 blog

另 一 种 改 变 窗 口 标 题 的 方 法 ---- 在1997 年9 月1 日 出 版 的《 计 算 机 世 界》 上 有 一 篇 名 为《visual c++ 4.0 编 程 经 验 谈》 的 文 章, 其 中 提 到 过 一 种 改 变 窗 口 标 题 的 方 法, 即 在 应 用 程 序 的 框 架 类cmainframe 类( 注: 它 是cframewnd 类 的 派 生 类) 的 成 员 函 数precreatewindow() 中 修 改cframewnd 类 的 成 员 变 量m_strtitle 的 值。 这 种 方 法 的 不 足 之 处 就 是 只 能 一 次 性 的 设 置 窗 口 标 题 的 内 容, 不 能 在 程 序 运 行 过 程 中 随 时 修 改 它。 比 如 当 需 要 把 鼠 标 的 当 前 坐 标 在 窗 口 标 题 上 显 示 时, 我 们 就 要 使 用 到visual c++ 提 供 的 全 程 函 数 bool setwindowtext( hwnd hwnd, lpctstr lpstring )。 这 个 函 数 实 际 上 是 一 个win32 函 数。 它 的 第 一 个 参 数 要 求 是 一 个 窗 口 框 架 的 句 柄, 而 第 二 个 参 数 要 求 是 一 个 指 向 一 个 常 量 字 符 串 的32 位 指 针, 即lpctstr 类 型 的 变 量。 通 常 情 况 下, 我 们 往 往 会 在 应 用 程 序 的 文 档 类 或 视 类 中 动 态 改 变 窗 口 标 题 的 内 容, 从 而 没 有 现 成 的 指 向 窗 口 框 架 的 句 柄 供 我 们 使 用, 因 此 我 们 还 需 要 在 使 用setwindowtext() 函 数 前 先 调 用 另 一 个win32 函 数afxgetmainwnd(), 来 获 得 一 个 指 向 应 用 程 序 的 框 架 类 的 指 针, 例 如 使 用 语 句

---- cwnd* m_pcwnd= afxgetmainwnd()

---- 然 后, 再 以 如 下 形 式 调 用setwindowtext() 函 数:

---- setwindowtext(*m_pcwnd, (lpctstr) m_windowtext);// m_windowtext 可 以 是 一 个cstring 类 的 变 量

---- 如 何 把 多 于256 色 的 位 图 作 为 资 源 加 入 到 应 用 程 序 中

---- 曾 经 使 用 过visual c++ 进 行 应 用 程 序 开 发 的 同 行 们 都 知 道,visual c++ 5.0 以 前 版 本 中 自 带 的 位 图 编 辑 器 不 能 浏 览 和 编 辑256 色 以 上 的 位 图, 并 且 资 源 文 件 中 也 不 允 许 嵌 入(import)256 色 以 上 的 位 图 作 为 资 源( 否 则, 在 应 用 程 序 运 行 时 会 报 错)。 这 一 特 性 使 得 我 们 用visual c++ 开 发 应 用 程 序 时 不 得 不 使 用 其 他 方 法 来 增 强 界 面 图 画 的 美 观 性, 于 是 就 有 使 用visual c++ 开 发 应 用 程 序 内 核, 用visual basic 开 发 界 面 部 分 的 组 合 方 法。 好 在visual c++ 5.0 中 这 个 问 题 有 了 改 善。 首 先, 位 图 编 辑 器 可 以 创 建 并 编 辑256 色 的 位 图 了。 另 外,visual c++ 5.0 允 许 程 序 员 把256 色 以 上 的 位 图 嵌 入 到 资 源 中, 尽 管 仍 然 无 法 在visual c++ 的 位 图 编 辑 器 中 浏 览, 并 且 还 要 求 必 须 选 择win32 release 作 为 编 译 方 式 生 成 可 执 行 的 应 用 程 序。 另 外 一 个 限 制 条 件 是 作 为 资 源 的256 色 以 上 的 位 图 不 能 由 应 用 程 序 内 核 自 动 打 开 和 关 闭。 比 如 说, 在 上 述 那 篇 名 为《visual c++ 4.0 编 程 经 验 谈》 的 文 章 中 曾 经 提 到 过 一 种 为 对 话 框 加 入 位 图 式 按 钮 的 方 法, 即 由 程 序 开 发 者 为 每 个 按 钮 创 建 四 幅 位 图, 分 别 用 于 表 示 按 钮 的 弹 起 状 态(up)、 按 下 状 态(down)、 输 入 焦 点 状 态(focus) 和 禁 止 状 态(disable), 并 且 必 须 以 该 按 钮 的 标 题 名 与 上 述 四 种 状 态 之 一 的 组 合 作 为 位 图 的 标 识, 以 便 应 用 程 序 在 绘 制 位 图 按 钮 时, 可 以 自 动 地 找 到 相 应 的 资 源( 即 位 图)。 然 而 这 一 自 动 映 射 只 限 制 于visual c++ 位 图 编 辑 器 能 够 打 开 的 位 图。 因 此 如 果 选 择256 色 以 上 的 位 图 作 为 位 图 按 钮 的 资 源, 并 也 希 望 达 到 上 述 四 状 态 的 相 互 切 换 的 话, 就 必 须 用 到 下 述 的 函 数 和 程 序 设 计 参 考 模 型。

  • 设 置 四 个 常 量,button_up,button_down,button_focus,button_disable, 分 别 用 于 标 识 各 按 钮 的 当 前 状 态。
  • 在 应 用 程 序 的 相 应 对 话 框 类 中 为 每 个 位 图 按 钮( 为 下 面 叙 述 方 便, 不 妨 假 设 为 两 个) 设 置 一 个crect 类 的 对 象,m_rect1 和m_rect2, 来 记 载 各 按 钮 在 对 话 框 中 所 占 据 的 坐 标 矩 形。 再 在 该 对 话 框 类 中 为 每 个 按 钮 设 置 一 个 整 型 变 量,buton1_status,button2_status, 记 录 各 按 钮 的 当 前 状 态。 然 后 在 对 话 框 的 构 造 函 数 中 初 始 化 这 些crect 类 的 对 象 和 整 型 变 量。
  • 在 该 对 话 框 类 中 创 建 分 别 响 应 鼠 标 各 种 状 态 的 消 息 处 理 函 数, 如onmousemove(),onlbuttonup(),onlbuttondown() 等。

本文关键:,.net, vc++,java,mfc,
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top