




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC+5.0 编 程 的 几 个 使 用 技 巧 - 在VC+5.0 编 程 中, 对 话 框 的 使 用 是 很 普 遍 的。 利 用ClassWiazrd 在 对 话 框 中 生 成 各 种 控 件 非 常 方 便。 以 下 介 绍 几 个 对 话 框 中 控 件 的 使 用 技 巧。 类 似 方 法 同 样 可 以 在VC+4.x 中 使 用。 - 1、 组 合 框(ComboBox) - 当 用 资 源 编 辑 器 在 一 个 对 话 框 中 生 成 组 合 框 控 件 时, 可 以 看 到 组 合 框 两 侧 的 控 制 点 是 实 心, 而 上 下 四 周 的 控 制 点 是 虚 心 的, 即 组 合 框 水 平 方 向 的 大 小 可 以 通 过 拖 动 组 合 框 控 件 两 侧 的 实 心 控 制 点 改 变, 垂 直 方 向 的 大 小 则 不 能 改 变。 为 了 改 变 垂 直 方 向 的 大 小, 可 以 用 鼠 标 单 击 组 合 框 控 件 的 下 拉 箭 头, 可 以 看 到 控 件 的 上 下 的 控 制 点 变 成 实 心, 此 时 可 以 拖 动 该 控 制 点 将 组 合 框 的 高 度 改 变。 当 运 行 程 序 时, 按 下 下 拉 箭 头,Windows 利 用 该 高 度 重 置 组 合 框 的 大 小。 - 如 果 组 合 框 中 各 列 表 项 是 固 定 的, 则 可 以 预 先 将 这 些 项 写 进 组 合 框。 方 法 是: 打 开 资 源 编 辑 器, 从 组 合 框 的 属 性(Proprities) 对 话 框 中 选 择Data 标 签, 在Enter listbox Items 列 表 框 中 填 加 各 列 表 项, 注 意 加 完 一 项 换 行 时, 必 须 用Ctrl+Enter 组 合 键。 如 果 希 望 以 输 入 的 次 序 来 显 示 各 项, 则 不 要 选 择Styles 标 签 的Sort 项。 填 加 完 列 表 项 后, 利 用 上 述 方 法 改 变 组 合 框 的 高 度( 否 则 程 序 运 行 后, 单 击 组 合 框 下 拉 箭 头 列 表 框 不 出 现), 这 样, 运 行 程 序 后, 单 击 组 合 框 的 下 拉 箭 头 可 以 看 到 各 列 表 项 已 加 入 到 组 合 框 的 列 表 框 中。 - 2、 微 调 控 件(Spin) - 一 般 来 说, 微 调 控 件 与 获 取 数 值 输 入 的 编 辑 控 件 组 合 成 伙 伴 关 系 使 用, 利 用 微 调 控 件 的 上 下 箭 头 增 加 或 减 少 编 辑 控 件 中 数 值 的 大 小。 要 将 微 调 控 件 与 编 辑 控 件 组 合 成 一 对 伙 伴 关 系, 需 要 以 下 几 个 步 骤: 首 先, 要 将 微 调 控 件 与 编 辑 控 件 的Tab Order 值 设 置 为 连 续 值, 且 编 辑 控 件 的 在 前, 微 调 控 件 的 在 后, 即 如 果 编 辑 控 件 的Tab Order 值 是1, 则 微 调 控 件 的Tab Order 值 应 该 是2。 设 置Tab Order 值 可 以 从LayOut 菜 单 中 选 择Tab Order 菜 单 项, 然 后 用 鼠 标 先 后 单 击 编 辑 控 件 和 微 调 控 件, 即 可 使 两 者 的Tab Order 值 为 先 后 次 序。 其 次, 打 开 微 调 控 件 的 属 性(Proprities) 对 话 框, 选 择Styles 标 签, 选 择Auto buddy 和Set buddy integer 选 项; 如 果 要 将 微 调 控 件 放 在 编 辑 控 件 的 右 边, 则 在Alignment 列 表 框 中 选 择Right 项。 最 后, 在 第 一 次 显 示 微 调 控 件 和 编 辑 控 件 的 初 始 化 函 数 中 应 设 置 微 调 按 钮 的 数 值 范 围, 否 则, 按 微 调 按 钮 的 向 上 箭 头 数 值 反 而 变 小, 按 向 下 箭 头 数 值 反 而 变 大。 假 设 定 义 微 调 控 件 的Control 成 员 对 象 名 为m_MySpin, 则 设 置 微 调 按 钮 的 数 值 范 围 的 语 句 为:m_MySpin.SetRange ( MinValue,MaxValue )。 - 3、 改 变 控 件 标 题 的 颜 色 - 对 话 框 中 的 控 件 在 运 行 时 可 以 根 据 一 定 的 条 件 动 态 改 变 其 标 题 颜 色。 当 对 话 框 中 的 控 件 的 标 题 需 要 重 新 着 色 时,Windows 向 该 控 件 的 父 窗 口 发 送 一 条WM_CTLCOLOR 消 息 以 获 得 该 控 件 的 颜 色,CWnd 对 象 通 过 重 置 虚 拟 方 法OnCtlColor 处 理WM_CTLCOLOR 消 息, 在 该 方 法 中 根 据 一 定 的 条 件 设 置 控 件 的 新 的 颜 色, 返 回 一 个HBRUSH, 就 可 以 用 它 来 重 新 绘 制 控 件。 - 例 如: 一 个 对 话 框 中 有10 个Static 控 件, 其 标 题 分 别 表 示10 个 信 号 的 名 称。 程 序 运 行 时, 这 些 名 称 用 黑 色( 默 认 值) 显 示, 当 某 种 条 件 发 生 时, 某 些 标 题 改 用 红 色 显 示, 表 示 信 号 发 生 异 常; 当 条 件 不 出 现 时, 名 称 又 恢 复 黑 色 显 示。 - 要 实 现 以 上 设 想, 首 先, 设 置10 个Static 控 件 的ID 号 为 顺 序 相 连, 并 取 其 符 号 名 为ID_Static1 至ID_Statis10 ; 其 次, 在 对 话 框 的OnPaint 函 数 中 加 入 显 示10 个Static 控 件 标 题 的 代 码; 最 后, 用ClassWizard 在 控 件 的 父 窗 口( 对 话 框) 中 加 入CWnd:OnCtrlColor 方 法, 在OnCtrlColor 方 法 中 加 入 以 下 代 码( 黑 体 显 示, 其 余 为 程 序 自 动 生 成): HBRUSH CRgbsSwitch:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: Change any attributes of the DC hereint i ;for ( i = IDC_STATIC1 ; i GetDlgCtrlID() = i ) & (满足某些条件 ) ) pDC- SetTextColor( RGB( 255, 0, 0 ) ; / TODO: Return a different brush if the default is not desiredreturn hbr;- 这 样, 当 程 序 运 行 时, 根 据 某 些 条 件 的 成 立 与 否, 控 件 标 题 显 示 颜 色 相 应 改 变。 - 4、 多 个 控 件 使 用 同 一 消 息 处 理 函 数 - 假 如 在 一 个 对 话 框 中, 有 多 个 控 件, 对 它 们 的 某 个 操 作, 响 应 的 事 件 基 本 一 致, 如 果 为 每 一 个 控 件 编 写 一 个 消 息 处 理 函 数, 则 程 序 就 不 简 洁 了。VC+ 提 供 了 宏 指 令ON_CONCTRL_RANGE, 可 允 许 多 个 控 件 使 用 同 一 消 息 处 理 函 数。 其 作 法 是: - 在 该 类 的.cpp 程 序 的 消 息 映 射 块 中, 使 用ON_CONCTRL_RANGE 宏 指 令 将 消 息 映 射 到 消 息 处 理 函 数 中( 黑 体 所 示): BEGIN_MESSAGE_MAP(CMyApp, CWinApp) /AFX_MSG_MAP(CMyApp) .ON_CONCTRL_RANGE(NotifyCode,FirstControlID,LastControlID,ClassMethod) /AFX_MSG_MAPEND_MESSAGE_MAP( )- 此 处,NotifyCode 指 响 应 的 消 息;FirstControlID 和LastControlID 分 别 是 控 件 的 起 始、 终 止ID 号( 必 须 是 连 续 的);ClassMethod 是 响 应 的 消 息 函 数。 - 然 后 在 该 类 的 头 文 件 的AFX_MSG 块 中 说 明 消 息 处 理 函 数( 黑 体 所 示): / Generated message-map functionsprotected: /AFX_MSG(CMyView) . /AFX_MSG afx_msg void ClassMethod( UINT nID );DECLARE_MESSAGE_MAP()- 在 该 类 的.cpp 程 序 中 最 后 加 入 消 息 处 理 函 数 的 代 码。 - 注 意: 以 上 各 步 需 要 自 己 去 做, 因 为ClassWizard 不 支 持 这 些 自 定 义 消 息。 - 例 如: 在 一 对 话 框 中, 有10 个 按 钮, 用 鼠 标 左 键 单 击 按 钮 时, 弹 出 一 个 消 息 框, 显 示 这 是 按 钮XX,XX 为1 至10 序 号。 所 以 这 里 每 个 按 钮 响 应 的 事 件 基 本 一 致, 仅 按 钮 序 号 不 同。 可 以 按 照 以 上 方 法 实 现: - 将10 个 按 钮 的ID 号 置 为 连 续, 其 符 号 名 为IDC_BUTTON1 至IDC_BUTTON10 ; - 在 该 类 的.cpp 程 序 中 先 加 入 消 息 宏 指 令:ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON10, OnButtonClicked); - BN_CLICKED 是 响 应 鼠 标 左 键 按 下 的 消 息。 - 在 头 文 件 中 说 明 消 息 函 数 原 型: afx_msg void OnButtonClicked (UINT nID );- 在 该 类 的.cpp 程 序 中 加 入 消 息 处 理 函 数 代 码: void C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发言稿农家乐
- 年会主管发言稿
- 陕西机器学习培训
- 培训管理电子商务
- 二零二五版航空航天设备采购廉洁保障协议
- 2025版儿童房专用刮大白装修工程合同范本
- 二零二五年度智能化建筑劳务分包施工合同
- 二零二五年度抖音短视频整体打包广告创意设计合同
- 二零二五年度农户小额信贷合同范本样本
- 2025版家庭居室装修智能家居系统安全检测与施工合同
- 颅脑疾病CT诊断课件
- 医疗改革背景下的基层医疗卫生机构成本核算管理分析
- 第17课《昆明的雨》公开课一等奖创新教学设计
- 体育产业与赛事运营管理课件
- QCT 998-2023 汽车空调滤清器 (正式版)
- 耳鼻喉健康宣教手册课件
- GB 24542-2023坠落防护带刚性导轨的自锁器
- 图解福田俊的家庭小菜园
- 酒吧防恐怖袭击应急预案
- 修剪乔木施工方案
- 华为财务管理(6版)-华为经营管理丛书
评论
0/150
提交评论