vc开发简单的flash播放器

上传人:桔**** 文档编号:485273970 上传时间:2022-10-14 格式:DOCX 页数:3 大小:9.60KB
返回 下载 相关 举报
vc开发简单的flash播放器_第1页
第1页 / 共3页
vc开发简单的flash播放器_第2页
第2页 / 共3页
vc开发简单的flash播放器_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《vc开发简单的flash播放器》由会员分享,可在线阅读,更多相关《vc开发简单的flash播放器(3页珍藏版)》请在金锄头文库上搜索。

1、vc 开发简单的 flash 播放器作者:未知 文章来源: 网络 近日朋友问在 VC 中如何控制 flash 文件,俺也没有做过以前,俺是新手再次声明,很菜的, 嘿嘿, 但俺也期望成为大侠, 能够叱诧风云, 仗剑行走江湖, 路遇不平排忧解难, 英雄美女, 朝阳晚霞,青山绿水。哈,不好意思,写着写着就歪了。但恐怕所有 Man 都有过这个 理想吧。转入正题,嗯。对了,朋友有难不能不帮,况且还是位 MM ,哈。俺只好上网找 资料了,在 baidu 搜了一下资料不是很多啊, 后来看到有一个用 vb 做的 DIY flash 播放器的, 就看了一下(就是下面贴的这个)。实现步骤挺简单的,使用 Shock

2、waveflash 控件实现, 转化成 vc 实现。嚯嚯。可以向 MM 邀功了。 实现步骤如下 :1。新建一个基于对话框的程序 ,添加变量 :int m_nTimer; /Timer 时间控制bool timerflag; /Timer 启用的标志 bool screenflag; / 全屏的标志 bool playflag; / 有无文件打开的标志 CRect flashrect; / 记录 Shockwaveflash 组件的矩形区域 WINDOWPLACEMENT m_FlashPos; / 记录 Shockwaveflash 组件的状态 WINDOWPLACEMENT m_WndPos

3、; / 记录对话框窗口的状态 在对话框的构造函数中将所有 bool 变量赋值为 FALSE 。2。在窗体上添加按钮 (为了实现简单, 俺的功能调用都是通过按钮实现的) ,设置 Capture 分别为: “打开”、“播放”、“暂停”、“停止”、“重播”、“后退 ”、“前进”、“末帧”、“快退”、“快 进”、“放大”、“缩小”、“还原”、 “关闭”、 “全屏 ”。3。添加一个 Shockwaveflash 控件,为 Shockwaveflash 控件添加变量 flash ; 添加一个 CSliderCtrl 控件, ID 为 IDC_SLIDER1 。4。为各个按钮添加处理代码:“打开”按钮代码:

4、char szFilters=MyType Files (*.swf)|*.swf|;CFileDialog fileDlg (TRUE, swf, *.swf,OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);if( fileDlg.DoModal ()=IDOK )CString pathName = fileDlg.GetPathName();flash.put_Movie(pathName);playflag=TRUE;if(!timerflag) m_nTimer=SetTimer(1,100,0); / 开启计时器 time

5、rflag=!timerflag;“播放 ”按钮代码: flash.Play();“暂停 ”按钮代码: flash.Stop();“停止 ”按钮代码: flash.Rewind();flash.Stop();“重播 ”按钮代码: flash.Rewind(); flash.Play();“后退 ”按钮代码: flash.Back();“前进 ”按钮代码: flash.Forward();“末帧 ”按钮代码: flash.GotoFrame(flash.get_TotalFrames()-1); “快退”按钮代码:int current=flash.CurrentFrame(); if(curr

6、ent4) current-=5; flash.GotoFrame(current); else flash.put_FrameNum(0);“快进 ”按钮代码:int current=flash.CurrentFrame();int i=flash.get_FrameNum(); if(currentSetPos(0); / 滑块置零 timerflag=FALSE;/ playflag=FALSE;/5。添加 Slider 控件的消息处理函数 PreTranslateMessage()响应的消息 NM_RELEASEDCAPTURECSliderCtrl *m_pSlider=(CSlid

7、erCtrl*)GetDlgItem(IDC_SLIDER1); int num=m_pSlider-GetPos();num=num*flash.get_TotalFrames()/100; flash.GotoFrame(num);/ 将下面代码添加到, Dialog 类的 OnInitDialog() 函数中CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1); m_pSlider-SetRange(0,100); / 设定 Slider 的活动范围是 01006。添加 Dialog 类的 OnTimer ()函数响应消

8、息 WM_TIMER 在 OnTimer ()函数中添加代码:CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1); m_pSlider-SetPos(flash.CurrentFrame()*100/flash.get_TotalFrames();7。在 Dialog 类的 DestroyWindow() 函数中添加代码: if(timerflag)KillTimer(m_nTimer);8。“全屏 ”按钮代码: if(!screenflag & playflag) GetWindowPlacement(&m_WndPos)

9、; flash.GetWindowPlacement(&m_FlashPos);flash.GetWindowRect(flashrect);CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1); m_pSlider-ShowWindow(SW_HIDE );HWND hwnd=this-GetSafeHwnd();LONG style=GetWindowLongPtr(hwnd,GWL_STYLE); SetWindowLongPtr(hwnd,GWL_STYLE,style-WS_CAPTION );CClientDC d

10、c(this); this-MoveWindow(0,0,dc.GetDeviceCaps(HORZRES),dc.GetDeviceCaps(VERTRES); flash.SetWindowPos(&CWnd:wndTop ,0,0,dc.GetDeviceCaps(HORZRES),dc.GetDeviceCaps( VERTRES),SWP_SHOWWINDOW);screenflag=TRUE;/9。响应按键 ESC 消息,取消全屏。重载对话框的 PreTranslateMessage()函数,在函数中添加如下代码: if(pMsg-message = WM_KEYDOWN) if(

11、pMsg-wParam=VK_ESCAPE)if(screenflag)HWND hwnd=this-GetSafeHwnd();LONG style=GetWindowLongPtr(hwnd,GWL_STYLE); SetWindowLongPtr(hwnd,GWL_STYLE,style+WS_CAPTION ); ShowWindow(SW_HIDE);SetWindowPlacement(&m_WndPos); flash.MoveWindow(flashrect.left,flashrect.top,flashrect.Width(),flashrect.Height(),1);flash.SetWindowPlacement(&m_FlashPos);screenflag=FALSE;CSliderCtrl *m_pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1); m_pSlider-ShowWindow(SW_SHOW );全屏和取消全屏的代码,是俺自己拼凑所得,充其量只是个模拟效果,而且还是个模拟的 不好的效果,如果有高手见到,希望能够博您一笑。另外,在笑过之后还请您不吝赐教。俺 一定以十二亿万分的热情接受

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号