请教一个使用windows mediaplayer 控件的问题

你妹的特盗不 2009-07-14 06:17:00
我添加了这个控件,也添加了一堆与这个控件相关的类,然后我建立了一个 CWMPPlayer4 m_mediaplayer;变量

然后让他与控件关联 DDX_Control(pDX, IDC_OCX1, m_mediaplayer);

一编译就说这句话错误

d:\my documents\visual studio 2005\projects\test\test\testdlg.cpp(58) : error C2664: 'DDX_Control' : cannot convert parameter 3 from 'CWMPPlayer4' to 'CWnd &'
请高手指教


在项目->添加类->里面添加了mediaplayer 控件相关类全添加了的

...全文
1006 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xiaoxiaofengqing 2010-09-05
同样有这个问题,我想问一下楼主,怎样可以把视频的速度放慢呢?
  • 打赏
  • 举报
回复
nikono_wei 2009-09-21
谢谢各位的回答,我的问题解决
  • 打赏
  • 举报
回复
原来这个分,不是用的技术分啊???
  • 打赏
  • 举报
回复
谢谢各位的帮助,用vs2005怎么都搞不定,然后安装了vs2008搞定了,可以播放了~~~

结贴~~我只有十一分技术分,不够,20分,各位不好意思~
  • 打赏
  • 举报
回复
sunlin7 2009-07-16
头文件中加入
#import "wmp.dll"
在需要的地方
//COcx1 m_ocxCtrl, 就是你添加的新类的实例。
WMPLib::IWMPPlayerPtr mPlayerPtr(m_ocxCtrl.GetControlUnknown());
这时候使用mPlayerPtr就可以完成mPlayerPtr->put_URL等动作,mPlayerPtr->Getcontrols()->play()播放等等,你自己试试。
  • 打赏
  • 举报
回复
biweilun 2009-07-16
类添加有问题。
  • 打赏
  • 举报
回复
rspider2003 2009-07-16
CWMPPlayer4这个类添加错了,注意看一下这个类的父类,你的应该是COleDispatchDriver,正确的应该是CWnd
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zaodt 的回复:]
仔细看看吧,产生的新类中,成员函数都列出来了,你看看就知道了。


你看的那文章是 VC++6.0 中的用法。
[/Quote]

以下是新创建的一个类
头文件,cpp文件是空的

#pragma once

// 计算机生成了由 Microsoft Visual C++ 创建的 IDispatch 包装类

// 注意: 不要修改此文件的内容。如果此类由
// Microsoft Visual C++ 重新生成,您的修改将被改写。

/////////////////////////////////////////////////////////////////////////////
// COcx1 包装类

class COcx1 : public CWnd
{
protected:
DECLARE_DYNCREATE(COcx1)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x6BF52A52, 0x394A, 0x11D3, { 0xB1, 0x53, 0x0, 0xC0, 0x4F, 0x79, 0xFA, 0xA6 } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}

BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)
{
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
pPersist, bStorage, bstrLicKey);
}

// 属性
public:
enum
{
amvUninitialized = 0,
amvLoading = 1,
amvInteractive = 3,
amvComplete = 4
}ReadyStateConstants;
enum
{
mpStopped = 0,
mpPaused = 1,
mpPlaying = 2,
mpWaiting = 3,
mpScanForward = 4,
mpScanReverse = 5,
mpClosed = 6
}MPPlayStateConstants;
enum
{
mpDefaultSize = 0,
mpHalfSize = 1,
mpDoubleSize = 2,
mpFullScreen = 3,
mpFitToSize = 4,
mpOneSixteenthScreen = 5,
mpOneFourthScreen = 6,
mpOneHalfScreen = 7
}MPDisplaySizeConstants;
enum
{
mpReadyStateUninitialized = 0,
mpReadyStateLoading = 1,
mpReadyStateInteractive = 3,
mpReadyStateComplete = 4
}MPReadyStateConstants;
enum
{
mpTime = 0,
mpFrames = 1
}MPDisplayModeConstants;
enum
{
mpShowURL = 0,
mpClipURL = 1,
mpBannerURL = 2
}MPMoreInfoType;
enum
{
mpShowFilename = 0,
mpShowTitle = 1,
mpShowAuthor = 2,
mpShowCopyright = 3,
mpShowRating = 4,
mpShowDescription = 5,
mpShowLogoIcon = 6,
mpClipFilename = 7,
mpClipTitle = 8,
mpClipAuthor = 9,
mpClipCopyright = 10,
mpClipRating = 11,
mpClipDescription = 12,
mpClipLogoIcon = 13,
mpBannerImage = 14,
mpBannerMoreInfo = 15,
mpWatermark = 16
}MPMediaInfoType;
enum
{
dvdMenu_Title = 2,
dvdMenu_Root = 3,
dvdMenu_Subpicture = 4,
dvdMenu_Audio = 5,
dvdMenu_Angle = 6,
dvdMenu_Chapter = 7
}DVDMenuIDConstants;
enum
{
mpShowDialogHelp = 0,
mpShowDialogStatistics = 1,
mpShowDialogOptions = 2,
mpShowDialogContextMenu = 3
}MPShowDialogConstants;


// 操作
public:



};

  • 打赏
  • 举报
回复
zaodt 2009-07-15
仔细看看吧,产生的新类中,成员函数都列出来了,你看看就知道了。


你看的那文章是 VC++6.0 中的用法。
  • 打赏
  • 举报
回复
weidong0210 2009-07-15
up
  • 打赏
  • 举报
回复
自己再顶~
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zaodt 的回复:]
VS2005 吧!


我刚试过了,不是那样加的。


很简单:

1、打开你的对话框,右键菜单,加入 控件

2、为控件添加变量就行了

3、类会自动产生
[/Quote]
那那个控件变量的类型,用默认的????

那这样产生的类,我看了下,我怎么操作这个操作呢?

只产生了一个类~
我是在网上看到的方法

在安装了Windows Media Player 9.0后,一个Windows Media Player ActiveX控件也同时被安装到系统并完成注册。该控件为开发人员提供了Windows Media Player 9.0具备的绝大部分功能,能够通过该控件比较轻松的实现对Windows Media Player 9.0的二次开发。

  为使用该控件,首先要将其添加到工程。点击“Project”下“Add to Project”弹出的“Components and Controls…”子菜单,并从弹出对话框中进入“Registered ActiveX Controls”目录查找并添加Windows Media Player控件到工程。这时以CWMP开头的17个类将被添加到工程。在资源视图中将控件拖动到用来播放多媒体的对话框上并通过ClassWizard将控件与CWMPPlayer4类对象建立关联。CWMPPlayer4类提供了与Windows Media Player控件进行交互的基本方法,而且部分成员函数还能够进一步获取得到其他相关类对象的实例。其中,SetUrl()和close()方法将能够打开和关闭指定的媒体文件。在打开文件之后,能够通过控件上的自带按钮控制媒体的播放、暂停、停止以及对音量的控制等。如果需要在程序中控制媒体的播放,可使用GetControls()函数返回CWMPControls类对象,并进一步调用该对象的play()、stop()、pause()、fastForward()、fastReverse()等方法来完成播放、停止、暂停、快进、快退等相应动作;如果需要在程序中对控件属性进行设置和更改,可在GetSettings()方法返回一个CWMPSettings类的对象后通过其成员函数来完成相应的设置,例如,下面这段代码将把播放音量设置到最大:
  • 打赏
  • 举报
回复
zaodt 2009-07-15
VS2005 吧!


我刚试过了,不是那样加的。


很简单:

1、打开你的对话框,右键菜单,加入 控件

2、为控件添加变量就行了

3、类会自动产生
  • 打赏
  • 举报
回复
我是按网上方法,把mediaplayer相关的类全部加入进去了的
所以本来工程只有三个类,现在有20个类了
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 flyskytoday 的回复:]
IDC_OCX1这个ID是CWMPPlayer4类控件产生的吗?
[/Quote]
这个id是在dialog界面点鼠标右键,插入active插件,选择windows media player
就自动产生了这个id

然后对着这个控件点右键,添加变量,变量类型不是网上说的 CWMPPlayer4 而是 COcx1然后点完成,就多了一个类
类代码是6楼
如果在添加变量类型那里写 CWMPPlayer4
编译就会出现1楼所说的错误~
  • 打赏
  • 举报
回复
flyskytoday 2009-07-15
IDC_OCX1这个ID是CWMPPlayer4类控件产生的吗?
  • 打赏
  • 举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分!
  • 打赏
  • 举报
回复
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2009-07-14 06:17
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……