《2022年按钮控件的使用 .pdf》由会员分享,可在线阅读,更多相关《2022年按钮控件的使用 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、按 钮 控 件 的 使 用作 者 : 杜 修 杏下 载 本 文 示 例 代 码最 近 有 不 少 朋 友 发 信 到 我 的 邮 箱 ,其 中 有 高 手 也 有 菜 鸟 ,也 许 他 们 问 的 问 题 我 还不 能 一 一 解 答 ,但 是 他 们 的 来 信 的 确 让 我 感 受 到 极 大 的 鼓 舞 。今 天 忙 里 偷 闲 ,翻译 了 一 片 外 国 的 文 章 , 献 给 那 些 摸 索 中 的 菜 鸟 们 。下 面 将 通 过 一 个 最 简 单 的 程 序 来 说 明 Windows的 消 息 机 制 。 程 序 主 要 是 使 用 两个 按 钮 控 件 ,它 要 求 用
2、户 输 入 两 个 数 字 ,当 你按 下 其 中 一 个 按 钮 的 时 候 ,会 根 据进 行 相 应 的 计 算 并 输 出 结 果 。 例 如 如 果 你 输 入 1 和 2, 然 后 按 下 Plus 按 钮 ,就 会 输 出 结 果 。由 于 大 多 数 情 况 下 ,按 钮 控 件 都 是 在 对 话 框 中 使 用 的 ,所 以 我 们 的 程 序 也 就 从 对话 框 开 始 。 使 用 程 序 向 导 建 立 一 个 名 为 “ButtonDemo ” 的 项 目 , 选 择 基 于 对 话 框的 程 序 类 型 。选 择 Workspace中 的 ResourceVew
3、属 性 页 ,在 里 面 找 到 名 为IDD_BUTTONDEMO_DLG的 一 项 , 双 击 打 开 对 话 框 编 辑 窗 口 。 可 以 看 到 系 统 已经 替 我 们 在 窗 口 中 加 入 了 Ok 和 Cancel两 个 按 钮 , 我 们 保 留 OK 按 钮 , 删 掉Cancel按 钮 , 并 按 照 图 中 所 示 改 变 按 钮 的 放 置 位 置 。通 过 鼠 标 的 拖 放 操 作 往 窗 体 中 加 入 两 个 按 钮 ( 因 为 在 本 程 序 中 需 要 Plus and Minus两 个 按 钮 ) , 在 按 钮 上 面 右 击 鼠 标 , 选 择 p
4、roperties进 入 控 件 的 属 性 设置 。 MFC 会 为 每 一 个 新 加 入 到 窗 口 中 的 按 钮 分 配 一 个 唯 一 的 ID 值 , 相 应 的 ID名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 值 会 记 录 在 一 个 名 为 Resource.h文 件 中 。为 了 表 达 清 楚 各 个 控 件 的 功能 ,我 们将 按 钮 的 ID 值 改 为 ID_BUTTON_ADD, 并 修 改
5、 caption的 内 容 为 “Plus”。下 一 步 我 们 要 加 入 Edit Box控 件 以 便 在 程 序 中 输 入 和 输 出 数 据 。 加 入 Edit Box控 件 的 方 法 跟 加 入 Button控 件 的 方 法 是 一 样 的 , 就 是 先 把 控 件 拉 进 来 , 调 整 它在 窗 口 中 的 位 置 , 然 后 修 改 它 们 的 ID 值 。如 下 图 所 示 ,不 过 记 得 在 最 后 一 个 Edit Box 控 件 的 属 性 设 置 中 要 把disable的 属 性 也 勾 上 , 因 为 计 算 的 结 果 不 需 要 由用 户 输 入
6、 。 我 们 还 在 右 边 的 两 个 Edit Box之 间 加 入 一 个 Static 控 件用 来 显 示 等式 中 的 等 号 , 只 需 要 把 控 件 拖 进 来 改 变 它 的 caption就 可 以 了 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 调 整 好 各 个 控 件 的 位 置 之 后 ,我 们 要 把 控 件 与 程 序 代 码 联 系 起 来 。这 一 步 可 以 通过 类 向 导 ( c
7、lass wizard) 来 实 现 , 调 用 类 向 导 的 方 法 有 两 种 , 一 种 是 通 过 菜 单项View-Class Wizard调 用 , 又 或 者 通 过 快 捷 键 Control + W 。 选 择 Member Variables 属 性 页 , 加 入 以 下 三 个 变 量 :m_nX, m_nY和 m_nAnswer。 记 住 三个 变 量 的 类 型 都 是 整 数 int 类 型 , 它 们 用 来 存 放 Edit Box中 的 整 数 值 。然 后 再 选 择 Message Maps 属 性 页 , 为 ID 值为 ID ID_BUTTON_A
8、DD和ID_BUTTON_SUBTRACT 的 两 个 按 钮 控 件 添 加 BN_CLICK消 息 ,系 统 会 针 对添 加的 消 息 在 代 码 中 加 入 相 应 的 消 息 函 数 , 这 样 当 用 户 点 击 按 钮 的 时 候 就 会 调 用 这 个函 数 。 在 本 例 中 生 成 的 两 个 消 息 函 数 分 别 名 为OnButtonAdd 和OnButtonSubtract.。 完 成 了 上 面 的 工 作 之 后 ,记 住 最 后 要 按 OK 按 钮 退 出 类 向 导 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
9、 - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 现 在 我 们 可 以 着 手 代 码 的 编 写 了 。 代 码 的 意 思 相 信 不 难 理 解 , 但 是 关 于UpdateData函 数 却 有 必 要 在 这 里 讲 解 一 下 。 在 这 里 UpdateData函 数 起 到 控 制Edit Box 显 示 内 容 的 作 用 。 当 调 用 UpdataData (TRUE)的 时 候 , 程 序会 对 控 件对 应 的 变 量 值 进 行 刷 新 ,也 就 是 说 会 把 控 件 中 的 输 入
10、 值 赋 给 对 应 的 变 量 。而 调 用UpdataData (FALSE)的 时 候 , 程 序 则 会 把 相 应 变 量 的 值 显 示 在 对 应 的 控 件 上 面 。void CButtonDemoDlg:OnButtonAdd() UpdateData (TRUE); m_nAnswer = m_nX + m_nY; UpdateData (FALSE); void CButtonDemoDlg:OnButtonSubtract() UpdateData (TRUE); m_nAnswer = m_nX - m_nY; UpdateData (FALSE); 按 钮 的 使
11、 用 就 是 如 此 简 单 。既 然 上 面 讲 到 添 加 消 息 函 数 ,这 里 就 顺 便 加 插 些 内 容 。在 默 认 的 情 况 下 ,通 过 类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 向 导 只 能 添 加 一 些 常 用 的 消 息 函 数 。 也 就 是 说 在 类 向 导 的 消 息 列 表 中 并 没 有 列 举出 所 有 的 消 息 。此 时 可 以 通 过 下 面 的 方 法 往 列 表
12、中加 入 这 些 没 有 显 示 的 消 息 。选择 “Workspace ” 中 的 “ClassViewq”页 , 在 对 应 的 类 中 右 击 , 选 择Add Windows Message Handler ,这 时 你 就 会 看 到 其 它 一 些 原 来 列 表 中 没 有 的 Windows消 息了 ,你 可 以 选 择 其 一 或 者 全 部 加 入 到 消 息 列 表 中 ,这 样 就 可 以 使 用 类 向 导 来 添 加相 应 的 消 息 函 数 了 。 如 果 在 以 后 的 练 习 中 遇 到 类 向 导 中 没 有 的 Windows消 息 ,记 住 这 个 方 法 哦 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -