第一章 MFC编程基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 MFC编程基础 复习 如何新建类 自定义MFC风格 §1 MFC基础知识复习 新建工程 对话框,常用控件 SDI,添加菜单、工具栏、事件(消息)处理函数 GDI 绘制点,线,圆,矩形,文字… 显示图片,拉伸/压缩图片 双缓冲显示 动画机制及其实现 示例:CatchMe 一个小猴子,随机出现在某个位置 在一个给定的时间内,玩家可以用鼠标左键来点击该猴子,若击中,则该小猴子立即“变脸” 在给定时间结束时,若玩家还没有击中,该小猴子就会逃走,随机出现在另外的位置…… 可以选择猴子数量和给定的时间(难度系数) 1.1 分析仅一只猴子的情形 显示原始图片 判断鼠标是否点中图片 判断时间是否结束 若在给定时间内点中图片,则在原位置更换图片 若在给定时间内没有点中图片,则继续以上过程 设计过程 导入两张图片 因为图片位置是随机产生的,并且会随着时间变化,因此要设置为变量x,y srand( (unsigned)time( NULL ) ); int x=rand(); 其中x的范围是[0, RAND_MAX], RAND_MAX是32767 制作开始菜单和工具栏 添加鼠标事件和时钟事件 判断选中与否 1.2 多只猴子? 若程序中固定有N只猴子,则需声明数组或链表来: 分别记录每只猴子的位置 分别记录每只猴子的选中状态 若游戏难度级别可调,即猴子数量和时间间隔可预设,则需添加对话框来设置猴子数量,以及时间间隔 如何给程序添加对话框 方法一: 选择菜单“Insert”?“New Form”,在弹出的对话框中的“Base Class”中选择 CDialog 在“Name”中填写对话框类的类名字 这样,就生成了一个对话框类和相应的对话框资源 方法二: 选择菜单“Insert”?“Resource“, 在弹出的对话框中,选择“Dialog” 方法二只生成了资源,而没有类文件 主程序与对话框的数据交换 在主程序的设置函数中,可以如下实现 CMyDialog dialog; If(dialog.doModal()==IDOK) { numOfMonkey=dialog.m_nNum; } 其中m_nNum是对话框类的成员变量,numOfMonkey是主程序试图类中的成员变量 如何管理数量变化的数据对象 在猴子数量可以预设的游戏程序中,猴子数并不是预先知道的,那么如何来管理(记录、保存、遍历、增删等)猴子对象呢? 动态数组 链表 动态数组 动态数组,需在堆中重新开辟内存空间 一维数组的动态生成方法: int *m_bIsSelected=new int[numOfMonkey]; 二维数组的动态生成方法: xy=new int* [numOfMonkey]; for (int i=0;inumOfMonkey;i++) xy[i]=new int[2]; §2 自定义类 MFC生成的应用程序框架,仅仅是一个框架而已,用户根据自己的需要,可以在此框架的基础上,进一步扩展以具备更多功能 扩展应用程序的方法,就是添加类(class) 类,可以实现对“相对独立的那部分功能”进行封装 示例:对多猴程序的改进 在前面的多猴程序(示例2)中,是在视图类中声明了多个变量和相关函数,程序结构并不简洁 可以把猴图片的相关数据以及对猴图片的相关处理集中起来,在一个类中来实现 那么,这个类应包含哪些成员变量和成员函数? 位置,即左上角位置 大小,即图片长和宽 状态,即是否被选中 大小信息由外部输入,即需要设置函数 位置是变化的,即需要随机产生 还要判断某点是否位于图片之上的函数 添加新类 class CMonkey { public: CMonkey(); virtual ~CMonkey(); public: int x; int y; int w; int h; bool m_bIsSelcted; void setWidth(int width); void setHeight(int height); void setPosition(); bool IsPointIn(CPoint pt)

文档评论(0)

yyh892289 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档