标题:MFC显示Flash动画的编程实现
只看楼主
hlmzrdongdong
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖北武汉
等 级:版主
威 望:1
帖 子:99
专家分:145
注 册:2008-10-24
结帖率:100%
 问题点数:0 回复次数:17 
MFC显示Flash动画的编程实现
     Flash动画已经广泛应用于网页中了,其美观与趣味性得到了我们的认可。网页是通过浏览器例如IE,The World等软件呈现给我们的,这些浏览器软件内置能够播放Flash的软件,那么如何在MFC程序中显示Flash,使我们设计的对话框程序更加美观呢?本文就是讨论这个问题的。

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

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

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

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

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

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


三.调整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);

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

五.运行该程序
   编译之后运行效果图如下

我下载的一个Flash动画是一个clock,所以上面显示的是一个时钟,当然显示的时间是系统时间,不需要你控制和更改的,是由这个flash本身完成的。







搜索更多相关主题的帖子: 动画 Flash MFC 
2009-11-12 12:19
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
得分:0 
学习。。。。。。。。。。。。。

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2009-11-13 15:31
LOVE110
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2008-11-21
得分:0 
强,我正搞这个太难了啊,没人指点啊
2009-11-19 12:23
guohuihuang
Rank: 1
来 自:湖北省
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-11-19
得分:0 
  嗯 以前我也做过一个flash  虽然跟你的不一样 但是差不多
2009-11-19 17:00
骗子男
Rank: 2
等 级:论坛游民
帖 子:68
专家分:18
注 册:2009-3-8
得分:0 
楼主强人啊,崇拜啊,学习了
2009-11-24 22:17
gauxten
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-1-23
得分:0 
楼主真是 强人
2010-01-23 11:01
shb8845369
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-18
得分:0 
楼主,我要拜你为师。不知大虾QQ?
2010-05-18 15:10
OZzZO
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-5-26
得分:0 
围观,强啊
2010-05-26 21:33
yjpa7
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-3-30
得分:0 
为何我显示的是一片白色的??请问是哪里的问题??
2010-07-02 23:14
shuye2050
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-5
得分:0 
楼主  代码下不了,能传个?我的邮箱shuye2050@
2011-07-29 14:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-292047-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.141963 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved