图38 CShockwaveFlash的类框架
VC会自动提取控件的所有方法和属性,并封装成我们所熟悉的成员函数形式。CShockwaveFlash为我们准备了不少的函数,我们先用一个熟悉点的试试:
void CShockwaveFlash::SetMovie(LPCTSTR lpszNewValue) { static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x66, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, lpszNewValue); }
这个SetMovie()可以用来设置当前播放动画的URL,估计相当于属性窗口里面的Movie URL。我们使用这个SetMovie()结合“浏览”按钮来实现选择播放功能: void CFlashPlayerDlg::OnBrowser()
{ CFileDialog FileDialog(true, \动画文件(*.swf)|*.swf|所有文件(*.*)|*.*||\
if(FileDialog.DoModal() == IDOK)
{ m_sFilePath = FileDialog.GetPathName(); UpdateData(false);
m_FlashScreen.SetMovie(m_sFilePath); } }
嗯,运行FlashPlayer,运行界面如下所示,它现在已支持文件选择的功能了:
图39 支持点播的FlashPlayer
FlashPlayer程序至此打造完毕,以下向大家推荐一些比较有用的控件: 1.1 MsChart控件
控件名称:Microsoft Chart Control 6.0 (sp4) 控件类:CMsChart
控件简介:MsChart是微软制作的功能强大的图表工具,用它可以很方便的建立各种图表,包括各种二维、三维的饼图、折线图、直方图、折线图、面积图等。 应用图例:
图40 MsChart控件应用图例 1.2 DataGrid控件
控件名称:Microsoft DataGrid Control 6.0 (sp5) 控件类:CDataGrid
控件简介:DataGrid控件是由微软提供的数据表格控件,需要与ADODC控件配合使用。通过使用DataGrid控件,可以很方便地实现数据表记录的浏览、增加、删除和修改功能。
应用图例:
图41 DataGrid控件应用图例 1.3 MsComm控件
控件名称:Microsoft Communications Control version 6.0 控件类:CMsComm
控件简介:MSComm 控件提供了一系列标准通讯属性和方法,使用它可以建立起应用程序与串行端口的联接。 应用图例:
图42 MsComm控件应用图例
以上画面来源于笔者自行制作的手机通讯软件FreePhone,其底层采用MsComm控件,感兴趣的读者可以参见http://bluejoe.yeah.net。 1.4 Web浏览器控件
控件名称:Web浏览器控件 控件类:CWebBrowser2
控件简介:Web浏览器相信大家再也熟悉不过了,IE浏览器就内嵌了一个Web浏览器控件,这也就是为什么腾讯浏览器与IE如此相似的原因。通过使用Web浏览器控件,可以很方便地实现网页页面的浏览和显示。
应用图例:
图43 Web浏览器控件应用图例 1.5 ActiveMovie控件
控件名称:ActiveMovie Control Object 控件类:CActiveMovie3
控件简介:ActiveMovie是Microsoft公司开发的视频播放控件。该控件内嵌了Microsoft MPEG音频解码器和Microsoft MPEG视频解码器,播放控制更加简捷方便。 应用图例:
图44 ActiveMovie控件应用图例 2 结束语
控件是好东西,有了它,绝对会节省你的不少时间和精力。如果你正在为某个复杂的实现而苦恼万分,那么笔者建
议你先上网查查是否已经有相应的控件可供下载使用。一个专业的控件往往会比你考虑得要周密得多,也要方便得多。而你的任务就是如何使用它,如何去推广它;当然,如果你有好的代码,譬如是一个底层硬件通讯的工程类,我也希望你会将这些东西封装成控件,然后贡献出来,让大家一块共享你的成就和快乐!