Flash基础入门:C++程序加载Flash动画
小标 2018-07-09 来源 : 阅读 2218 评论 0

摘要:本文主要向大家介绍了Flash基础入门的C++程序加载Flash动画,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

本文主要向大家介绍了Flash基础入门的C++程序加载Flash动画,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

在VC中加载Flash动画,一种很方便的方式就是在IDE的类向导生成一个IShockwaveFlash接口的包装类。但小弟十分不喜欢VC的可视化向导,几乎很少用,总是喜欢直接拿代码说话。

下面写段播放Flash的简单代码:

首先要利用#import命令导入Flash控件的类型库,如:#import "PROGID:ShockwaveFlash.ShockwaveFlash" nonamespace raw interfaces only

运行一次后会生成flash.tlh文件,程序中需要的接口定义(如IShockwaveFlash接口)就在此文件中生成。

上代码: 

代码

// 播放Flash文件
// hWndAttach: 播放Flash文件所依赖的窗口
// lpszFlash: 要播放的Flash文件
inline BOOL PlayFlash(HWND hWndAttach, LPCTSTR lpszFlash)
{
    ATLASSERT(::IsWindow(hWndAttach) && ::PathFileExists(lpszFlash));

    CComPtr<IShockwaveFlash> spFlash = NULL;

    // 创建IShockwaveFlash指针对象
    AUX_HRESULT_ASSERT_FAILED_RETURN_VALUE(::CoCreateInstance(__uuidof(ShockwaveFlash), NULL, CLSCTX_ALL, __uuidof(IShockwaveFlash), (LPVOID*)&spFlash), FALSE);

    ATLASSERT(spFlash != NULL);

    // 设置背景透明
    ATLVERIFY(SUCCEEDED(spFlash->put_WMode(L"transparent")));

    // 将IShockwaveFlash对象绑定到指定的窗口上
    AUX_HRESULT_ASSERT_FAILED_RETURN_VALUE(AtlAxAttachControl(spFlash, hWndAttach, NULL), FALSE);

    // 播放Flash文件
    AUX_HRESULT_ASSERT_FAILED_RETURN_VALUE(spFlash->put_Movie(CT2OLE(lpszFlash)), FALSE);

    return TRUE;
}

 

 

其中AUX_HRESULT_ASSERT_FAILED_RETURN_VALUE宏是为了简便代码的编写而定义的,定义如下:

 

代码

#define AUX_ASSERT_FAILED_RETURN_VALUE(expr, ret)  \
{   \
    BOOL bRet = (expr) ? TRUE : FALSE;    \
    ATLASSERT(bRet && #expr);    \
    if (!bRet) return ret;  \
}

#define AUX_HRESULT_ASSERT_FAILED_RETURN_VALUE(expr, ret)  \
{  \
    AUX_ASSERT_FAILED_RETURN_VALUE(SUCCEEDED(expr), ret)  \

 

完成后,调用:

PlayFlash(this->GetDlgItem(IDC_FLASH), _T("D:\\test.swf"));

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件Flash频道! 

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程