本人为小菜菜~,为方便大家理解,我先写一下我使用控件的全过程吧。
想在VS2008下学做个播放器。
文件——》新建——》项目,选择MFC应用程序——》名称为player——》确定。
点击应用程序类型——》基于对话框——》完成。
在DIALOG中右击——》插入ACTIVEX控件——》选Windows Media Player ,添加了Windows Media Player 控件ID为IDC_OCX1。
对Windows Media Player控件右击——》添加变量——》变量名为m_wmplayer——》完成。
拉二个按钮到DIALOG中“打开”和“暂停”,双击“打开”输入以下代码:
// TODO: 在此添加控件通知处理程序代码
TCHAR szFileFilter[]= _T("Mp3 File(*.mp3)|*.mp3|MPEG File(*.mpeg)|*.mpeg|Media File(*.asf)|*.asf|Video File(*.dat)|*.dat|MPGA File(*.mpga)|*.mpga|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Mid File(*.mid;*,rmi)|*.mid;*.rmi|Wma File(*.wma)|*.wma|All File(*.*)|*.*||"); CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this); if (fileDialog.DoModal() == IDOK) { CString fileName=fileDialog.GetPathName(); m_wmplayer.put_URL(fileName);
}
到此时一切正常~
然后右击类视图/解决方案—〉添加类—〉选择“Active中的MFC类”—〉选择windows media player <1.0>选择所有接口生成类。
在然后在对话框头文件中(playerDlg.h)添加了以下变量:
CWMPControls m_control;
在playerDlg.cpp的OnInitDialog()中添加代码:
m_control = static_cast <CWMPControls>(m_avPlayer.get_controls());
双击“暂停”输入 // TODO: 在此添加控件通知处理程序代码
m_control.pause();
结果报错了。
错误 1 error C2146: 语法错误 : 缺少“;”(在标识符“m_control”的前面)
错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误 3 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误 4 error C2065: “m_control”: 未声明的标识符
错误 5 error C2061: 语法错误 : 标识符“CWMPControls”
错误 6 error C2065: “m_control”: 未声明的标识符
错误 7 error C2228: “.pause”的左边必须有类/结构/联合
错误 8 error C2146: 语法错误 : 缺少“;”(在标识符“m_control”的前面)
错误 9 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误 10 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
应该怎么改才能获得对播放器的控制呢?先谢谢啦
想在VS2008下学做个播放器。
文件——》新建——》项目,选择MFC应用程序——》名称为player——》确定。
点击应用程序类型——》基于对话框——》完成。
在DIALOG中右击——》插入ACTIVEX控件——》选Windows Media Player ,添加了Windows Media Player 控件ID为IDC_OCX1。
对Windows Media Player控件右击——》添加变量——》变量名为m_wmplayer——》完成。
拉二个按钮到DIALOG中“打开”和“暂停”,双击“打开”输入以下代码:
// TODO: 在此添加控件通知处理程序代码
TCHAR szFileFilter[]= _T("Mp3 File(*.mp3)|*.mp3|MPEG File(*.mpeg)|*.mpeg|Media File(*.asf)|*.asf|Video File(*.dat)|*.dat|MPGA File(*.mpga)|*.mpga|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Mid File(*.mid;*,rmi)|*.mid;*.rmi|Wma File(*.wma)|*.wma|All File(*.*)|*.*||"); CFileDialog fileDialog( TRUE,NULL,NULL,NULL,szFileFilter,this); if (fileDialog.DoModal() == IDOK) { CString fileName=fileDialog.GetPathName(); m_wmplayer.put_URL(fileName);
}
到此时一切正常~
然后右击类视图/解决方案—〉添加类—〉选择“Active中的MFC类”—〉选择windows media player <1.0>选择所有接口生成类。
在然后在对话框头文件中(playerDlg.h)添加了以下变量:
CWMPControls m_control;
在playerDlg.cpp的OnInitDialog()中添加代码:
m_control = static_cast <CWMPControls>(m_avPlayer.get_controls());
双击“暂停”输入 // TODO: 在此添加控件通知处理程序代码
m_control.pause();
结果报错了。
错误 1 error C2146: 语法错误 : 缺少“;”(在标识符“m_control”的前面)
错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误 3 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误 4 error C2065: “m_control”: 未声明的标识符
错误 5 error C2061: 语法错误 : 标识符“CWMPControls”
错误 6 error C2065: “m_control”: 未声明的标识符
错误 7 error C2228: “.pause”的左边必须有类/结构/联合
错误 8 error C2146: 语法错误 : 缺少“;”(在标识符“m_control”的前面)
错误 9 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误 10 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
应该怎么改才能获得对播放器的控制呢?先谢谢啦
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货