目前位置: VCer资源中心 >>> VCer论坛 >>> 技术问答

[本帖已阅读1516次 分值2 回复1次] 张贴资源 发回信箱 控制面板

sdi下使用ocx控件

提供者:latitude 张贴时间:2007-06-24 20:57:19.0 出处:vcer.net 作者:latitude

sdi下使用ocx控件(2007-06-24 20:57:19.0)


latitude


 
级别: VCer小兵
头衔: VCer会员

经验: 35
作品: 3
分会: 华东分会
注册: 2007-06-24 16:57:47.0
登录: 2007-06-26 20:57:08.0

请教各位:

  如何在sdi框架的程序中,在主框架的客户区来显示flash,显示flash使用flash.ocx控件,flashnow显得太复杂了,有没有更简单一点的例子,谢谢!

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1182689839406.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]

re:sdi下使用ocx控件

FlashNow里面的一个窗口类,好像是CFlashWnd可以直接用啊。

说白了,就是插入ShockWaveFlash控件。

bluejoe 于 2007-06-25 09:07:03.0 编辑 [回复该贴]

re:re:sdi下使用ocx控件

To:bluejoe

我按照你的想法做了,具体方法是:

建立一个sdi工程,这个工程不支持文档类视图,因而只有一个ChildView视图,我在类CChildView中加入数据成员,

public:

    CFlashWnd m_Flash;

然后增加OnCreate消息处理方法:

int CChildView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

    if (CWnd::OnCreate(lpCreateStruct) == -1)

        return -1;

   

    if (m_Flash.Create((CWnd *)this)==-1)

        return -1;

    CMainFrame *p_Frame=(CMainFrame *)GetParent();

    p_Frame->p_Flash=&m_Flash;

    return 0;

}

 

在CMainFrame中加入成员

public:

    CFlashWnd *p_Flash;

 

最后,在重载About菜单方法如下:

void CMainFrame::OnAppAbout()

{

    // TODO: Add your command handler code here

    p_Flash->SetMovie("1.swf");

    p_Flash->Play();

}

 

问题是,flash不播放,请问到底是什么原因,源代码可以提供,谢谢!

latitude 于 2007-06-25 22:42:41.0 编辑 [回复该贴]

re:re:re:sdi下使用ocx控件

是不是路径不是绝对路径的原因?

如果还不是,建议使用SPY++,看一下FlashWnd是否创建成功。

bluejoe 于 2007-06-26 08:42:50.0 编辑 [回复该贴]

re:re:re:re:sdi下使用ocx控件

我的工程名叫f1,下面的图是用spy++的截图,请看一下。应该不是路径的问题,因为1.swf就在debug目录下,和exe在同一个目录。

从图上看,frash.ocx是生成的。

latitude 于 2007-06-26 21:04:33.0 编辑 [回复该贴]