VC2010 MFC程序制作Flash动画欢迎界面
写了一个基于对话框的MFC程序。为了美化程序,想在启动时弹出一个Flash动画。网上找了很久,没有直接能用的解决办法。于是,参考了
http://blog.csdn.net/zhuxiaoyang2000/article/details/6147483中介绍的在VS2010中添加Flash的方法,和http://blog.csdn.net/rydiy/article/details/8665677中介绍的MFC中欢迎界面实现方法。结合两者,实现了MFC基于对话框程序的Flash欢迎界面。以下用一个例子对整个流程进行介绍,希望对遇到同样问题的朋友有所帮助。
一、准备工作
1.下载并安装Adobe Flash Player。从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的Flash Player并安装。对于Windows 32位系统,其默认安装目录为:
C:/WINDOWS/system32/Macromed/Flash/;对于64位系统,为:C:/Windows/SysWOW64/Macromed/Flash。Flash控件文件的后缀为“ocx”,如我的Flash控件在目录“C:\WINDOWS\system32\Macromed\Flash”下,文件名为“Flash32_20_0_0_270.ocx”。
2. 注册Flash控件。 单击屏幕左下角“开始”,点击“运行”,并输入:“regsvr32 C:\WINDOWS\system32\Macromed\Flash32_20_0_0_270.ocx” 注册该控件(注册之后就可以在项目中进行控件添加了),如果注册成功,则会弹出提示对话框“DllRegisterServer在C:\WINDOWS\system32\Macromed\Flash32_20_0_0_270.ocx已成功”。
3. 准备好事先下载的或自己制作的Flash动画。
二、实现方法
1. 打开Visual Studio(我的是2010版本),新建项目,选择“MFC应用程序”,并将其命名为“MFCFlash”。在接下来的选项设置中,选择应用程序类型为“基于对话框”,其他可按默认设置。项目建成后,程序默认添加了名为“MFCFlashD”和“MFCFlashDlg”的头文件和实现文件,如下图所示:
2. 在资源视图中,在“Dialog”上右键,选择"插入Dialog",设置属性: “Border”为“none”,“Title Bar”为“False”,使对话框不显示标题栏和边框。改ID为“IDD_SPLASHSCREEN_DIALOG”。删除对话框上的“确定”和“关闭”按钮。如下图所示:
3. 为了操作对话框,需将其关联一个类。在刚才插入的对话框上右键,选择添加类,设置类名“CSplashScreenDlg”,点击完成,程序会自动添加该类的头文件和源文件。将 "#include SplashScreenDlg.h”语句添加到“MFCFlashDlg.h”中,以便后续在“MFCFlashDlg.cpp”中使用“CSplashScreenDlg”类。
4. 添加Shockwave Flash Object类。点击“项目”→“类向导”,在弹出的对话框中单击右上角的“添加类”,选择“ActiveX控件中的MFC类”,打开“从ActiveX控件添加类向导”对话框。选择从“文件”添加类,找到Flash控件的安装位置,即可添加Shockwave Flash控件,接口选择“IShockwaveFlash”,以生成CShockwaveFlash类(类的名称可以修改)。插入后,VC会自动把这个类加入工程里面。
5. 插入ActiveX控件。在“IDD_SPLASHSCREEN_DIALOG”对话框上点击右键,选择“插入ActiveX控件”,从弹出的列表中选择“Shockwave Flash Object”。调整ActiveX控件的大小,使之完全覆盖住对话框背景。
6. 为ActiveX控件关联变量。为了操作ActiveX控件,需将其关联为一个变量。在Flash控件上点右键,然后选择“添加变量”,设定“变量名”为:m_FlashPlayer。
7. 为对话框添加初始化命令和定时器响应。打开类向导,选择虚函数标签页,选择OnInitDialog(),单击添加。选择消息标签页,选择“WM_TIMER”,单击添加。在“MFCFlashDlg.cpp”文件中,找到CMFCFlashDlg::OnInitDialog()函数,在“return TRUE”之前添加代码:
SetTimer(1, 3000, NULL); //设置定时器,定时3秒钟获取Flash文件完整路径
CString m_sRootPath;
GetModuleFileName(NULL,m_sRootPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
m_sRootPath.ReleaseBuffer ();
int nPos;
nPos=m_sRootPath.ReverseFind ('\\');
m_sRootPath=m_sRootPath.Left (nPos);
CString strMovieUrl = m_sRootPath + "\\start.swf" ; //flash文件“start.swf”应放在Debug目录下加载并播放动画
m_FlashPlayer.LoadMovie (0, strMovieUrl);
m_FlashPlayer. Play ();
在OnTimer()中添加代码:
switch(nIDEvent)
{ case 1: //如果id为1的timer结束,则执行关闭窗口操作 SendMessage(WM_CLOSE); break; default: break;
}
8. 利用DoModal()函数实现“IDD_SPLASHSCREEN_DIALOG”对话框在程序启动时显示。在“MFCFlashDlg.cpp”的OnInitalDialog()中添加:
CSplashScreenDlg spldlg;
spldlg.DoModal();
生成解决方案,运行程序,进行测试。
VC2010 MFC程序制作Flash动画欢迎界面相关推荐
- 简单的flash小动画成品_怎么制作flash动画?看这里怎么说。
互联网的发展带动抖音短视频制作浪潮,现在抖音短视频动画很流行,我们会看到很多一些二维动画片段,看多了这些可爱的动画视频,人们都想自己动手做一个简单动画.但是大部分人都是小白,不知道如何制作这样的动画. ...
- 制作flash动画的心得
制作Flash动画 制作工具: 界面基本认识: 使用的基本方法: 制作工具: 使用的是Macromedia Flash软件 界面基本认识: 使用的基本方法: 将所有用到的素材可一起导入,也可分别导入到 ...
- 用计算机制作flash动画教案,Flash动画制作教案
以下是出国留学网小编整理的高中信息技术<Flash动画制作>教案,供大家浏览参考.更多相关内容请关注出国留学网教案栏目. 高中信息技术<Flash动画制作>教案一: 课题:Fl ...
- 用计算机制作flash动画教案,中职信息技术教案:Flash动画计算机动画制作初步.doc...
中职信息技术教案:Flash动画计算机动画制作初步 课题:Flash动画计算机动画制作初步 教学目标:1:将原来静态的跑步姿态的图形加工为动态的跑步造型: 2:熟悉FLASH制作中的几个关键性的概念: ...
- matlab制作有趣动画制作,怎样制作有趣又好玩的flash动画
原标题:怎样制作有趣又好玩的flash动画 随着如今的社会进入"眼球经济"时代,能够吸引人眼球的广告才是有利于传播的广告.而flash动画由于节奏鲜明.表现方式有趣又好玩,就具备了 ...
- flash动画制作作品_flash施工动画制作应该展现哪些内容
伴随施工方案演示动画的不断应用,越来越多的人认识到其中的功效,施工动画通过电脑技术将建筑过程演示出来,能够对建筑工地和施工过程进行详细的了解,避免施工过程中的一些错误,提高施工的安全性和工程的质量.作 ...
- 用计算机制作动画,如何使用制作工具制作一个简单的Flash动画-电脑自学网
怎么制作Flash动画?通过Adobe Flash我们可以制作出非常有趣好看的动画,也可以制作一键简单的小动画,下面给大家介绍如何使用制作工具制作一个简单的Flash动画. 操作方法: 1.打开fla ...
- MFC工程使用flash控件
利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢?^_^,其实,要做到这点也不难.在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行 ...
- VC播放FLASH动画
利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难.在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进 ...
- Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(二)
[注] iOS代码已重构,效率提升90%,200层动画不卡.[2016.10.27] 上一篇 点此阅读 简要介绍了FlashToAnimation的功能,也就是将flash动画无缝导入到Android ...
最新文章
- java 简单万年历_JAVA实现的简单万年历代码
- 论坛报名 | 李开复张亚勤陆奇共论AI时代的创业
- 2015年11月 广州深圳 MVP 线下活动
- oracle程序加密,oracle加密
- ORACLE基础学习-RMAN应用-控制文件恢复
- 前端学习(3221):类式组件中的props
- 视觉SLAM笔记(61) 单目稠密建图
- 【Elasticsearch】es shard split 使用分析
- Qt 批量替换指定文本为目标文本
- jeesit的简单使用(四)
- 关于pointnet++系列编译文件(tf_ops)的问题
- 金山、百度、360上演“三国杀” 巨头争推网盘
- b365老掉线 h3c路由器_H3C路由器频繁断线的原因及解决方法
- 从精彩阅读网上爬取《凡人修仙传》
- win easypanel安装php,windows下kangle虚拟主机-kangleeasypanel安装图文教程以及心得
- Linux下 Yum 是什么
- RK平台ME3630模块GPS移植调试
- 油画的发展过程经历了几个时期?
- Ubuntu14.04.6系统下安装软件和程序库(含安装PyCharm、Visual Studio Code、Boost和Eigen程序库等)
- 高精度结构光工业3D相机Mech-Eye PRO全面升级:可选蓝光/白光版本,适合中距离应用...
热门文章
- 批量下载Landsat快视图,为批量下载Landsat Level1数据做准备
- 2022最受欢迎开源免费CMS建站系统排行榜
- 使用知用电流探头时如何设置示波器参数
- 程序开发类本科论文结构【2022年修改】
- flash 火狐总是崩溃_火狐浏览器经常崩溃怎么办,解决Firefox、Flash假死问题
- 如何给扑克洗牌才能更公平?
- CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection(论文阅读笔记)
- K8s 集群上运行ca机制
- apk部分手机安装失败_如何解决APK安装失败 INSTALL..
- 有哪些电影一定要趁年轻看? - 风之影的回答 - 知乎