写了一个基于对话框的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动画欢迎界面相关推荐

  1. 简单的flash小动画成品_怎么制作flash动画?看这里怎么说。

    互联网的发展带动抖音短视频制作浪潮,现在抖音短视频动画很流行,我们会看到很多一些二维动画片段,看多了这些可爱的动画视频,人们都想自己动手做一个简单动画.但是大部分人都是小白,不知道如何制作这样的动画. ...

  2. 制作flash动画的心得

    制作Flash动画 制作工具: 界面基本认识: 使用的基本方法: 制作工具: 使用的是Macromedia Flash软件 界面基本认识: 使用的基本方法: 将所有用到的素材可一起导入,也可分别导入到 ...

  3. 用计算机制作flash动画教案,Flash动画制作教案

    以下是出国留学网小编整理的高中信息技术<Flash动画制作>教案,供大家浏览参考.更多相关内容请关注出国留学网教案栏目. 高中信息技术<Flash动画制作>教案一: 课题:Fl ...

  4. 用计算机制作flash动画教案,中职信息技术教案:Flash动画计算机动画制作初步.doc...

    中职信息技术教案:Flash动画计算机动画制作初步 课题:Flash动画计算机动画制作初步 教学目标:1:将原来静态的跑步姿态的图形加工为动态的跑步造型: 2:熟悉FLASH制作中的几个关键性的概念: ...

  5. matlab制作有趣动画制作,怎样制作有趣又好玩的flash动画

    原标题:怎样制作有趣又好玩的flash动画 随着如今的社会进入"眼球经济"时代,能够吸引人眼球的广告才是有利于传播的广告.而flash动画由于节奏鲜明.表现方式有趣又好玩,就具备了 ...

  6. flash动画制作作品_flash施工动画制作应该展现哪些内容

    伴随施工方案演示动画的不断应用,越来越多的人认识到其中的功效,施工动画通过电脑技术将建筑过程演示出来,能够对建筑工地和施工过程进行详细的了解,避免施工过程中的一些错误,提高施工的安全性和工程的质量.作 ...

  7. 用计算机制作动画,如何使用制作工具制作一个简单的Flash动画-电脑自学网

    怎么制作Flash动画?通过Adobe Flash我们可以制作出非常有趣好看的动画,也可以制作一键简单的小动画,下面给大家介绍如何使用制作工具制作一个简单的Flash动画. 操作方法: 1.打开fla ...

  8. MFC工程使用flash控件

    利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢?^_^,其实,要做到这点也不难.在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行 ...

  9. VC播放FLASH动画

    利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难.在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进 ...

  10. Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(二)

    [注] iOS代码已重构,效率提升90%,200层动画不卡.[2016.10.27] 上一篇 点此阅读 简要介绍了FlashToAnimation的功能,也就是将flash动画无缝导入到Android ...

最新文章

  1. java 简单万年历_JAVA实现的简单万年历代码
  2. 论坛报名 | 李开复张亚勤陆奇共论AI时代的创业
  3. 2015年11月 广州深圳 MVP 线下活动
  4. oracle程序加密,oracle加密
  5. ORACLE基础学习-RMAN应用-控制文件恢复
  6. 前端学习(3221):类式组件中的props
  7. 视觉SLAM笔记(61) 单目稠密建图
  8. 【Elasticsearch】es shard split 使用分析
  9. Qt 批量替换指定文本为目标文本
  10. jeesit的简单使用(四)
  11. 关于pointnet++系列编译文件(tf_ops)的问题
  12. 金山、百度、360上演“三国杀” 巨头争推网盘
  13. b365老掉线 h3c路由器_H3C路由器频繁断线的原因及解决方法
  14. 从精彩阅读网上爬取《凡人修仙传》
  15. win easypanel安装php,windows下kangle虚拟主机-kangleeasypanel安装图文教程以及心得
  16. Linux下 Yum 是什么
  17. RK平台ME3630模块GPS移植调试
  18. 油画的发展过程经历了几个时期?
  19. Ubuntu14.04.6系统下安装软件和程序库(含安装PyCharm、Visual Studio Code、Boost和Eigen程序库等)
  20. 高精度结构光工业3D相机Mech-Eye PRO全面升级:可选蓝光/白光版本,适合中距离应用...

热门文章

  1. 批量下载Landsat快视图,为批量下载Landsat Level1数据做准备
  2. 2022最受欢迎开源免费CMS建站系统排行榜
  3. 使用知用电流探头时如何设置示波器参数
  4. 程序开发类本科论文结构【2022年修改】
  5. flash 火狐总是崩溃_火狐浏览器经常崩溃怎么办,解决Firefox、Flash假死问题
  6. 如何给扑克洗牌才能更公平?
  7. CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection(论文阅读笔记)
  8. K8s 集群上运行ca机制
  9. apk部分手机安装失败_如何解决APK安装失败 INSTALL..
  10. 有哪些电影一定要趁年轻看? - 风之影的回答 - 知乎