windows编程技术10gdi编程3—动画

windows编程技术10gdi编程3—动画

ID:18712511

大小:600.00 KB

页数:24页

时间:2018-09-21

windows编程技术10gdi编程3—动画_第1页
windows编程技术10gdi编程3—动画_第2页
windows编程技术10gdi编程3—动画_第3页
windows编程技术10gdi编程3—动画_第4页
windows编程技术10gdi编程3—动画_第5页
资源描述:

《windows编程技术10gdi编程3—动画》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章GDI编程3-动画动画是利用人的视觉滞留缺陷(25ms~400ms)和心理认可来动态生成系列相关画面以产生运动视觉的技术。位图动画是将预先制作好的一系列表示连续画面的位图,按一定的时间间隔一幅接一幅地连续显示,从而产生动画效果。因为绘制动画所需的图形,以及拍摄和处理图片,需要美术、摄影、数字图像处理、动画设计等知识,我们这里不讲。本书只介绍如何显示已有的位图(序列)以产生动画效果,以及如何动态绘制不同的简单图形以产生二维图形动画等。用GDI编程实现动画,一般需要用到计时器(Timer)操作,通常在计时器响应函数OnTimer中(而不要使用OnDraw)绘图来实现动画。10.1固定位

2、图动画本节介绍利用一系列的位图资源,在同一个屏幕位置,接连显示位图序列,以达到动画的效果的具体方法。为此,可在交互绘图程序中添加一个如图10-1所示的位图动画对话框,并添加对应的对话框类CDukeDlg。也可以创建一个基于对话框的独立的MFC应用程序。图10-1位图动画对话框资源当然还需添加相应的“位图动画”菜单项(ID_DUKE)和(为视图类添加)对应的菜单响应函数,并在该函数中创建对话框类的对象,打开对话框来运行动画:#include"DukeDlg.h"voidCDrawView::OnDuke(){CDukeDlgdlg;dlg.DoModal();24}10.1.1准备位图、加入

3、位图资源系列公爵(Duke)BMP文件T1.BMP~T10.BMP(见图10-2),来自Java吉祥物的GIF动画文件,可存放在项目的res子目录的Duke子目录中(该位图资源已经打包成Duke.rar文件后,放到了系里的网站和我的个人网页上)。T1.BMPT2.BMPT3.BMPT4.BMPT5.BMPT6.BMPT7.BMPT8.BMPT9.BMPT10.BMP图10-2Duke位图文件用VC的资源编辑器依次加入位图文件:在左边的项目工作区中选“资源视图”页,展开项目的资源列表,在“Bitmap”表项(若无此项,则可直接在项目资源项)上单击鼠标右键,在弹出的浮动菜单中选“添加资源”菜单

4、项,在打开的“添加资源”对话框中,选中左边“资源类型”栏中的“Bitmap”表项,单击右边的“导入”按钮,在弹出的“导入”文件对话框中,定位Duke目录,选中所有Ti.BMP后按“打开”钮,则会自动加入ID为IDB_BITMAPi的位图资源。为了以后循环编程的方便,必须保证是从T1.BMP到T10.BMP顺序依次加入。为了确认,可打开头文件Resource.h查看,若其中的常量IDB_BITMAPi的定义数值不连续,可作一些手工修改使其连续,例如:#defineIDB_BITMAP1131#defineIDB_BITMAP2132#defineIDB_BITMAP3133#defineID

5、B_BITMAP4134#defineIDB_BITMAP5135#defineIDB_BITMAP613624#defineIDB_BITMAP7137#defineIDB_BITMAP8138#defineIDB_BITMAP9139#defineIDB_BITMAP1014010.1.2添加控件、创建对话框类为对话框资源添加图片控件:打开对话框资源,在控件工具箱中选图片控件(PictureControl)工具,在对话框的适当位置添加图片控件,设置其“ID”属性值为“IDC_ANI”,修改“Type”属性为(在其下拉式列表框中选中)“Bitmap”,再在“Image”属性的下拉式列表框

6、中选中“IDB_BITMAP1”位图资源,则该位图绘显示在图片控件中。为了控制动画的播放,需要添加一个即可表示开始动画又可表示停止动画的按钮(初始标题为“开始动画”),可设置其ID为“IDC_ANI_START_STOP”。为了让用户选择动画的速度,可以添加静态文本提示框“每秒帧数:”和文本编辑框(IDC_N),在后面的10.1.6小节中还会添加滑块控件(SliderControl,IDC_SLIDER_N)。创建该对话框资源所对应的对话框类CDukeDlg。10.1.3添加类变量、装入与删除位图在对话框类的定义(头文件)中添加若干类变量:CBitmap*m_pBmp[10];//位图指针

7、数组BITMAPm_bs;//位图结构变量boolm_bStarted;//判别动画是否启动(初始化为false)intm_nCurFrame,//当前帧号(初值为0)m_nFramesPerSecond;//每秒帧数(初值为10)为CDukeDlg类添加(重写型)消息响应函数OnInitDialog,在该函数中(也可以在构造函数中)创建位图对象并装入位图资源,然后获取位图结构(其中的位图宽和高用于BitBlt函数),并

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。