孤狼工作室 Visual C++ 实例连载
实例12 Flash播放器的制作
1.创建一对话框应用程序,工程名:Flash
2.删除对话框中的控件,添加一个Flash控件。具体步骤如下:如果在制作这个flash播放器之前没有装过制作flash 的软件flash MX的话,就要先注册一下控件,点击菜单中的工具,点ActiveX Control Test Container,在弹出的对话框中点 file--Regisster controls---Register,找到 Flash8b.ocx ,如果没有到网上下载一个。最后点击打开即可完成注册。
3 。将控件添加到控件工具栏中:点击 工程---添加的工程---Components and Controls Gallery,双击
Registered ActiveX Controls 文件夹,找到Shockwave Flash Object.lnk,选中点击Insert 即可添加到控件工具栏中。将其拖到对话框中,并调整好位置大小。
4.为Flash播放器添加一个菜单:点击插入---资源--Menu 点击 新建,即可插入一个菜单资源,可到资源视图中察看。为菜单资源添加类:点击类向导,在弹出的对话框中选择 Select an existing class,在弹出的对话框中选择 CFlashDlg 完成菜单类的创建。
5。编辑菜单,其添加 文件--打开--关闭 的一个下拉菜单项。修改 打开 的ID为ID_OPEN,关闭的ID为ID_CLOSE。
6.分别为ID_OPEN、ID_CLOSE添加鼠标单击相应函数,ID_OPEN代码如下:
void CFlashDlg::OnOpen()
{
// TODO: Add your command handler code here
CFileDialog
dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("Flash文档.swf|*.swf|"));
if(dlg.DoModal()==IDOK)
{
m_strPathName=dlg.GetPathName();
UpdateData(FALSE);
}
m_flash.SetMovie(m_strPathName);
m_flash.GotoFrame(0);
m_flash.Stop();
}
ID_CLOSE代码如下:
void CFlashDlg::OnClose()
{
// TODO: Add your command handler code here
OnOK();
}
7.为了让对话框窗口大小能够变化,还应该勾选对话框属性的样式中的最小话框、最大化框。为了让Flash控件在播放过程中的大小能够随着窗口的变化而变化,还应加入以下代码:
(1)添加之前先给控件定义一个变量:m_flash
(2)为对话框添加WM_SZIE函数,代码如下:
void CFlashDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rect;
if(m_flash.GetSafeHwnd())
{
m_flash.GetWindowRect(&rect);
ScreenToClient(&rect);
m_flash.MoveWindow(0,0,cx,cy,TRUE);
}
}
这样当我们在播放过程中动画的大小就能随窗口的变化而变化了。
一个基本的Flash播放器就做好了,当然你可以在此基础上继续完善它的功能。欢迎交流:QQ:84237758
本程序经孤狼工作室在 Windows 2000 Server + Visual C++ 6.0 中编译运行通过。如有问题可加QQ:84237758
以后孤狼工作室将陆续添加更多的实例,敬请期待!