Win编程10_11讲.ppt_第1页
Win编程10_11讲.ppt_第2页
Win编程10_11讲.ppt_第3页
Win编程10_11讲.ppt_第4页
Win编程10_11讲.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

应用程序开发过程 综述 库文件 lib 资源文件与程序文件的关系 第10章在MFC中创建应用程序的资源 本章要点VisualC 6 0IDE提供了资源编辑器 支持WinApp的可视化开发 自动生成处理资源的代码 本章将主要介绍VC 所支持的资源及使用资源编辑器编辑资源的方法 本讲主要内容 第11讲 资源与资源符号 理解 资源编辑器及其使用 掌握 资源编辑器使用实例 掌握应用 菜单命令消息处理机制及其应用 理解 快捷菜单的建立 掌握 一 资源与资源符号 资源是一种界面元素 用户可以从中获得信息并在其中执行某个动作 在WinApp中 资源是指在 rc中描述的各种可重复使用的只读数据 1 什么是资源 在VC中 源代码或资源编辑器为了引用资源和用户自定义的其它对象 于是就引入了一种与资源一一对应的符号即资源符号 使之能够以字符串的方式被引用 2 资源是怎样被访问的 是 映射到整数值上的一串字符 是一种标识符 每当创建一个新的资源或资源对象时 系统就会为其提供一个缺省的资源符号名称并赋一个整数值 该定义保存在resource h文件中 一 资源与资源符号 3 资源符号的常用前缀 资源符号的取值范围一般为0 32767 由 define预处理器来决定 一 资源与资源符号 通过菜单 View ResourceSysbol 可打开资源符号浏览器 来查看当前项目正在使用的资源符号的名称和相应的整数值 并可以方便地创建 更改 删除资源符号 4 资源符号的查看 一 资源与资源符号 VC 6 0中的一种实用工具 利用它可以实现 二 资源编辑器及其使用 创建新资源修改 复制已有资源删除不再需要资源 创建新资源 通过 Insert Resource 可创建新资源 导入已有资源或导出资源等 注 新创建的资源将加入当前的 rc中 此时相应的资源编辑器也会打开 rc的建立有两种方式 以文本方式建立 或利用资源编辑器 二 资源编辑器及其使用 编辑资源 VC 6 0提供了多种可视化的资源编辑器 它们有许多共同的操作 学会使用其中的一种创建资源 就能类似地使用其它 使用资源编辑器能 查看资源使用资源模板导入导出资源设置资源的属性 二 资源编辑器及其使用 编辑资源 在VC 6 0IDE中 使用项目工作区的 资源视图 面板来统一组织和管理资源 并方便用户查看资源 VC中的7种标准资源编辑器 DialogEditorMenuEditorAcceleratorEditorToolbarEditorVersionInformationEditorStringEditorGraphicsEditor 二 资源编辑器及其使用 1 ialogEditor使用它可以创建 编辑一个对话框模板 对话框资源 常用操作包括 各类资源编辑器的使用简介 增 删和编辑控件改变控件Tab顺序布置控件位置测试一个对话框窗口 2 MenuEditor使用它可以直观而有组织地安排命令 即可以创建主菜单和弹出式菜单 为菜单 菜单选项定义热键 加速键和状态栏提示 也可以创建快捷菜单 以便通过右键来执行频繁使用的命令 常用操作包括 创建 删除和修改标准菜单和对应命令创建 删除和修改弹出菜单和对应命令设置快捷键 加速键和菜单项的状态信息改变菜单项的位置 各类资源编辑器的使用简介 2 MenuEditor菜单设计分2步 使用MenuEditor编辑菜单及其选项利用类向导为菜单ID进行消息映射 编辑消息处理函数完成菜单所要实现的功能 各类资源编辑器的使用简介 3 AcceleratorEditor加速键表列出了窗口资源中加速键和相应的命令ID 使用它可以维护加速键表 常用操作包括 增加 删除和修改加速键资源浏览并修改加速键表的资源ID将一个加速键与一个菜单项相关联 各类资源编辑器的使用简介 4 ToolbarEditor工具栏编辑器可用于创建工具栏资源 也可将位图转化为工具栏资源 其使用类似于画图工具 常用操作包括 创建工具栏资源将位图转化为工具栏资源编辑 移动和删除工具栏资源 各类资源编辑器的使用简介 4 ToolbarEditor工具栏按纽的设置分2步 使用图形工具编辑按纽位图在其属性对话框中指定按钮的ID 各类资源编辑器的使用简介 5 StringEditor字符串表列出了一个应用程序中所有标识符的ID 值和名称 如状态栏的提示 使用它可以创建 编辑一个字符串 常用操作包括 增 删 改一个字符串记录移动一个字符串记录到同文件内的另一段移动一个字符串记录到另一个资源文件修改一个字符串的值或它的ID增加格式或特殊字符到一个字符串 各类资源编辑器的使用简介 6 VersionInformationEditor版本信息包括 公司和产品的信息 语言 序列号 版权和商标声明等 版本信息编辑器帮助创建并方便维护这些信息 7 GraphicsEditor图形编辑器用于绘制位图 图标 光标等 同时支持工具栏位图的创建 各类资源编辑器的使用简介 3 保存 删除资源 利用资源编辑器编辑的资源信息 由VC系统自动保存在 rc和 h文件中 保存选择 File SaveAll 删除一个资源 只需在ResourceView方式下选择欲删资源ID 压Del键即可 二 资源编辑器 三 资源编辑器使用实例 综合 简易记事本 文本编辑器的实现 要求 文本编辑器可以在视图窗口内接收键盘输入并编辑文本 能将文本存盘并从磁盘装入文本文件 具有撤销操作 选择文本区域 剪切 复制 粘贴 查找 替换文本等功能 基本实现类似记事本的功能 同时需要修改该应用程序图标 三 资源编辑器使用实例 综合 设计思路 MFC类库的CEditView 不仅提供了在视图中使用CEdit控件的功能 还提供了实现简单文本编辑器的功能 所以 只要在利用MFCAppWizard生成该应用程序的基本框架时 选择从CEditView派生该项目应用程序视类即可 椐题意 还需在 编辑 菜单下增加 全选 查找 查找下一个 和 替换 4个菜单项 实现后的应用程序 运行窗口如下 三 资源编辑器使用实例 综合 1 建立 简易记事本 应用工程 SDI CMyView CEditView 即在向导第1步 选SDI 第6步 修改CMyView的基类为CEditView即可 注 此时运行程序 观察已具备什么功能 明确按题目要求 还要做什么 三 资源编辑器使用实例 综合 具体实现过程如下 2 增加其菜单项 双击IDR MAINFRAME 打开菜单资源编辑器窗口 在 编辑 菜单底部依次加入 全选 查找 查找下一个 和 替换 菜单项 各菜单项属性如下所示 菜单项ID菜单项名称 Caption 菜单项提示信息 Prompt ID EDIT SELECT ALL全选 A tCtrl A选择整个文档 n选择全部ID EDIT FIND查找 F tCtrl F查找指定的正文 n查找ID EDIT REPEAT查找下一个 N tF3重复上一步操作 n重复ID EDIT REPLACE替换 R tCtrl H用不同的正文替换指定的正文 n替换 三 资源编辑器使用实例 综合 2 增加其菜单项 请注意 每一个菜单项都与一个菜单ID相对应 经消息映射后与一条菜单消息相对应 选择一个菜单项时 系统将自动调用相应的菜单消息处理函数 一个菜单若具有下级菜单 则不对应菜单ID 在本程序中 由于所加入的菜单项ID采用的是标准的MFC菜单项ID标识符 则CEditView中定义的消息映射能自动将每个命令消息发送到相应的消息处理函数 所以不用再定义消息处理函数 三 资源编辑器使用实例 综合 具体实现过程如下 3 添加加速键资源 4 修改 简易记事本 的默认文件扩展名为 txt 分别修改第4 5个子串为 文件说明符 txt txt 5 修改 简易记事本 的程序图标 到此 文本编辑器 已达到要求功能 每一步后都可保存并重新运行程序 观察其效果 确定下一步该做什么 三 资源编辑器使用实例 综合 当添加了一个用户自定义菜单项 并设置完菜单项属性后 若立即运行程序 可以看到该菜单项呈灰色 不可选择 必须为该菜单项增加菜单命令消息处理函数和相应的实现代码以支持菜单所要实现的功能 菜单命令消息处理函数是用户选择一个特定菜单项而产生的菜单消息的映射函数 MFC使用ClassWizard管理一个菜单命令消息处理函数 四 菜单命令消息处理机制 四 菜单命令消息处理机制 2个消息的响应机制 COMMAND消息的响应 用于菜单命令消息处理 UPDATE COMMAND UI消息的响应 用于更新菜单的显示 例如 用户在选择某些菜单项时 希望将来能看到选择留下的痕迹 如何通过菜单项来控制程序 即菜单项的响应 菜单命令消息的响应 在类向导ClassWizard的MessageMap标签中 如果选择一个菜单ID 在Messages列表框中就会出现以下两项 COMMANDUPDATE COMMAND UI其中UPDATE COMMAND UI是更新命令用户接口消息 专门用于处理菜单项和工具条按钮的更新 四 菜单命令消息处理机制 注 MFC通过消息映射机制和CCmdUI类更新菜单项的显示 voidEnable BOOLbOn TRUE 禁止或者允许该菜单项voidSetCheck intnCheck 1 设置菜单项 工具条按钮的check状态 显示标志为 voidSetRadio BOOLbOn TRUE 与SetCheck功能类似 显示标志为 voidSetText LPCTSTRlpszText 设置菜单项的Caption属性 CCmdUI类常用的方法 简易记事本 文本编辑器的新增功能 1 增加 查看 版本 五 菜单命令消息处理的应用 简易记事本 文本编辑器的新增功能 2 增加 查看 大 该菜单项为切换菜单 其ID为 ID VIEW BIG 要求增加切换标记 并且使菜单项名称随选择次数逢3的倍数在 大 中 小 之间循环变换 具体实现步骤为 1 编辑菜单项 大2 为CMianFrame增加public访问权限的int型成员变量count 并在该类构造函数中初始化为0 五 菜单命令消息处理的应用 3 为其分别映射WM COMMAND和UPDATE COMMAND UI消息 建立其消息处理 更新函数 并编辑代码 如下 voidCMainFrame OnViewBig TODO Addyourcommandhandlercodeherecount 五 菜单命令消息处理的应用 voidCMainFrame OnUpdateViewBig CCmdUI pCmdUI TODO AddyourcommandupdateUIhandlercodehereif count 2 pCmdUI SetCheck true elsepCmdUI SetCheck false if count 9 count 0 if count 0 pCmdUI SetText 大 XP elseif count 3 pCmdUI SetText 中 xp elseif count 6 pCmdUI SetText 小 xp 五 菜单命令消息处理的应用 六 快捷菜单的建立 主要有2种方法 1 使用ComponentGallery创建快捷菜单2 使用菜单资源编辑器和CMenu TrackPopupMenu 函数来创建右键快捷菜单 快捷菜单的具体实现过程 1 在VC 6 0IDE中选择 Project AddtoProject ComponentandCortrols 菜单项 在弹出的对话框中选择VisualC Component文件夹 单击 Insert 按纽 从列出的组件内容中选择 Pop upmenu 构件 应答 中可实现关联 即可 说明 Addpop upmenuto选项会将所生成的快捷菜单和一个类关联在一起 程序运行时 当用右键击该类对象时 将弹出快捷菜单 六 快捷菜单的建立 快捷菜单的具体实现过程 2 编辑快捷菜单 同菜单编辑 略 说明 若应答中没有关联上为快捷菜单连接一个类 将光标指向编辑态的快捷菜单 击右键选择ClassWizard 弹出Addingaclass对话框 选择存在的类CMyView即可 3 为快捷菜单连接消息处理函数 这里只需为快捷菜单中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论