MFC显示Flash动画

作者在 2010-06-14 14:46:47 发布以下内容
MFC显示Flash动画的编程实现(此文转自hlmzrdongdon)
     Flash动画已经广泛应用于网页中了,其美观与趣味性得到了我们的认可。网页是通过浏览器例如IE,The World等软件呈现给我们的,这些浏览器软件内置能够播放Flash的软件,那么如何在MFC程序中显示Flash,使我们设计的对话框程序更加美观呢?本文就是讨论这个问题的。

     首先声明本文所用的MFC开发软件是VS2008版的,所以下面供下载的例程是在VS2008环境下编写的。使用VC++6.0的朋友可以用记事本打开那些源代码。
例程下载地址:http://hlmzrdongdongsohu.qupan.com/4796664.html

    当然在开始时有一个准备工作要做,那就是下载一个较小的.swf格式的Flash动画吧。另外要确保你的计算机里安装了播放Flash动画的ActiveX插件,也许你不知道你的计算机里有没有这个插件,后面在编程的过程中将会告诉你的。

一.建立一个基于对话框的工程
   我将自己的工程命名为flashdemo。在建立工程的向导中有一部很重要,如下图所示:
124d710499ag213.jpg (24.14 KB)

这里红色区域的那一项一定要钩上,因为后面的编程中将会用到ActiveX控件的。默认情况下也是钩上的。

二.将播放Flash动画的ActiveX控件加入到工程中
   通过资源窗口(Resource)进入编辑对话框的界面,在该对话框上单击右键选择“插入ActiveX控件…”选项。如下图所示:

接着会弹出一对话框,那是要你选择ActiveX控件,找到播放Flash动画的控件“Shockwave Flash Object”,选中后点击确定即可。观察一下对话框会看到一个黑色的矩形框,那个即是这个控件。如果你找不到这一项即说明没有注册该控件。当然可以人工注册百度一下即可。
124d726416eg214.jpg (10.48 KB)


三.调整Flash播放控件的属性
   选中该Flash控件后将其ID设置为IDC_SHOCKWAVEFLASH。
   再次选中该控件,右击给此控件添加一个成员变量,命名为flashshow。

四.添加代码

   需要添加的代码非常的少,都是在flashdemoDlg.cpp这个文件中田间。

   在对话框初始化函数体BOOL CflashdemoDlg::OnInitDialog()中添加一下代码:

      
程序代码:
RECT rc;

       this->GetClientRect(&rc);//获得客户区的坐标

       //调整flash的位置

       rc.left=rc.right/2-200;

       rc.right=rc.right/2+200;

       rc.top+=40;

       rc.bottom=rc.bottom/2;

       flashshow.MoveWindow( &rc, true );



       TCHAR strCurDrt[500];

       int nLen = ::GetCurrentDirectory(500,strCurDrt);

       if( strCurDrt[nLen]!='\\' )

       {

              strCurDrt[nLen++] = '\\';

              strCurDrt[nLen] = '\0';

       }



       CString strFileName = strCurDrt;

       strFileName += "clock.swf";//clock.swf是flash文件的名字,该flash文件放在工程目录下。

       flashshow.LoadMovie(0, strFileName);

       flashshow.Play();

   然后在void CflashdemoDlg::DoDataExchange(CDataExchange* pDX)中添加如下代码:

程序代码:
       DDX_Control(pDX, IDC_SHOCKWAVEFLASH, flashshow);

   至于这些代码的确切位置在哪,看看提供的例程即可。

五.运行该程序
   编译之后运行效果图如下
124d7132f1fg213.jpg (16.94 KB)

我下载的一个Flash动画是一个clock,所以上面显示的是一个时钟,当然显示的时间是系统时间,不需要你控制和更改的,是由这个flash本身完成的。
默认分类 | 阅读 2112 次
文章评论,共0条
游客请输入验证码
浏览44497次
文章分类