Windows程序设计课件第5章(1504KB).ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用类向导,在视图类中添加定时器消息处理函数 对定时器消息处理函数编程,在其中命令所有被选中的图元用闪烁的方式绘制自己 在“取消选择”菜单的消息处理函数中,销毁定时器,重画所有被选中图形,并清空保存被选中图元的链表 在“删除”菜单的消息处理函数中,在文档类的m_Graphs中查找被选中图元,找到后从链表中删除。最后重画整个客户区 课堂作业: 1. 在什么情况下客户坐标和逻辑坐标可能不相等? 2. CDC类的绘图函数的参数都是使用的什么坐标? 3. 写出将客户坐标转换为逻辑坐标的代码。 5.4 锦上添花的绘图程序 5.4.1 目的 学习鼠标的控制方法;学习创建和使用画笔和画刷;学习添加状态栏窗格并对其进行操作;初步训练较复杂功能的独立思考。 5.3.2 步骤 当程序刚启动时,装入十字光标以备用。注意同时要在头文件中添加一个HCURSOR类型的成员变量 当鼠标移动到客户区后,改变光标的形状为十字光标 当用户按下鼠标左键准备画图时,将鼠标钳定在客户区内 当用户画完一个图元后,释放鼠标的钳定 添加画笔和画刷的菜单以及它们的消息处理函数 对画笔和画刷的的消息处理函数编程:类型和宽度的消息处理函数只要对相应成员变量赋值即可,颜色的消息处理函数需要使用系统自带的颜色对话框 修改直线、矩形和椭圆类的头文件,加入画笔和画刷的成员变量 修改直线、矩形和椭圆类的Draw()函数 修改鼠标左键弹起消息处理函数,在保存图元数据时添加画笔、画刷信息 为项目添加一个资源ID,用于表示状态栏窗格:ResourceView-右键单击第1行-Resource Symbols -New 为项目添加一个字符串,给它适当的长度以表示状态栏窗格的长度:ResourceView-String Table-右键单击任意行-New String-在ID中输入刚才的资源ID,在Caption中输入适当长度的空格 在主框架类的源文件中的indicators全局数组中添加刚才的资源ID 在主框架类的头文件中添加一个自定义函数用于在状态栏窗格中显示坐标 对这个自定义函数编程 修改视图类的鼠标移动消息处理函数,让它调用主框架类的那个自定义函数去显示坐标 课堂作业: 1. 写出将鼠标钳制在客户区矩形以内的代码。 2. 假设要用红色画出一条直线,起点和终点分别是P1和P2,写出创建画笔、将画笔选进设备环境、绘制直线、恢复画笔的代码。 5.5 使用UpdateCmdUI进行坐标显示的绘图程序 5.5.1 目的 了解UpdateCmdUI的作用和触发时机;使用它进行状态栏窗格的显示控制。 5.5.2 UpdateCmdUI:只要用户界面部件正在显示,就会发出这条消息 5.5.3 步骤 在主框架类的源文件的消息映射中手工添加状态栏窗格的UpdateCmdUI消息映射 在主框架类的头文件的AFX_MSG宏中手工添加OnUpdatePane()函数 对OnUpdatePane ()进行编程 5.6 可以选取并删除图形的绘图程序 5.6.1 目的 定时器的使用方法;加深对面向对象理论中的虚函数的理解;训练处理程序的逻辑功能的能力。 5.6.2 设计思路 怎样让用户选中一个图元呢?本程序设计为当用户在图元周围3个像素内点击时,就选中该图元 怎样反馈用户已经选中某图元呢?本程序让图元闪烁显示来反馈。这就要用到定时器 为了在闪烁显示时能迅速找到被选中的图元,我们另外用一个链表来存放被选中的图元的指针 删除被选中的图元时,要在保存所有图元的链表中查找被选中图元,找到后将其删除并释放内存。同时要取消定时器 5.6.3 步骤 在“编辑”下拉菜单中添加“选取”、“取消选取”和“删除”菜单项,并创建它们的消息处理函数 修改抽象类CGraph,加入纯虚函数IsSelected()和SelectedDraw(),并在3个派生类中重载和实现这两个纯虚函数 在“选取”菜单的消息处理函数中设置选择状态标志 在文档类的头文件中添加一个专门保存被选中图元的链表 修改鼠标左键按下的消息处理函数,判断如果是选择状态,则依次检查是否选中了某个图形。如果选中,则将其加入专门保存被选中图元的链表,并启动定时器 为项目添加一个新类CGraph:Insert-New Class-将Class type改为Generic Class-在Name中输入新类的类名,这里是CGragh-在Derived from中输入基类名称,这里是CObject-点击OK按扭关闭对话框 在CGragh类中定义纯虚函数Draw():在ClassView中双击CGrag

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档