重新安装VC6.0时如何勾选 active x
你好,安装了VC6.0后工程->添加到工程->ComponentsandGallery-文件夹下面是空的没有RegisteredActiveXControls文件夹...
你好,安装了VC6.0 后 工程->添加到工程->Components and Gallery-文件夹下面是空的没有Registered ActiveX Controls文件夹
展开
1个回答
2015-03-23 · 知道合伙人影视综艺行家
关注
展开全部
在vc6下面,直接在MFC工程中插入一个ActiveX组件,然后在为其建立一个控件类型成员的同时,MFC会为此组件生成很多的相关包装类,例如,对wmp而言,会生成CWMPPLAYER4 CWMPCONTROL CWMPSETTINGS等等(你可以自己确定是否要生成对应的包装类)。之后,你就可以利用这些类来控制wmplayer工作了。
在vs2003呢? 按照前面的步骤操作了一下,新建一个MFC 对话框,然后在里头插入一个wmplayer控件,紧接着为其添加一个成员变量,发现向导自动为其生成一个ocx1的窗口派生类(CWnd)的成员。 这个ocx1怎么用啊,没有直接将wmp控件的各个接口给包装出来啊,难道还是需要我们用原生接口或者用IDispatch接口啊?
后面摸索了一下,发现在vs2003以及后面的版本中生成wraper类的方法。
选中工程,点击右键选择"添加类",在里头选择"从ActiveX控件中生成MFc类",之后选择我们的控件(从系统当前以及注册的控件列表)。这里我们选中"Windows Media Player"控件,选择后下面的左边会列出wmp的一些接口,选择左边的接口,添加到右边,向导就会为此接口生成对应的包装类。到此应该发现和vc6实际上是一样的吧。例如这里我们选择IWmpPlayer接口,向导就会为其包装为CWMPPlayer4类,然后我们可以为对话框中的wmp控件添加一个控件成员,设置其类型为CWMPPlayer4,之后就可以用如下代码进行播放控制了:
CWMPPlayer4 m_player; // dlg头文件中定义的成员变量
// 播放文件
CWMPSettings2 set = m_player.get_settings();
set.put_autoStart(FALSE);
m_player.put_URL(_T("e://testproject//media//昆明湖.mp3"));
// 控制暂停和播放
CWMPControls3 control = m_player.get_controls();
if (m_bPause == true)
{
control.play();
}
else
{
control.pause();
}
m_bPause = !m_bPause;
等等操作......
这里需要注意一个问题:在前面所说的通过ActiveX创建Mfc类的时候,测试发现,第一个添加的是从Cwnd派生出来的,而后面的是COleDispatchDriver派生出来的。不过也不一定是这样,我先添加了CWMPPlayer4 CWMPControls2,然后添加CWMPSettings,发现CWMPSettings又是从Cwnd派生的,不过没关系了,直接修改其基类为COleDispatchDriver,另外稍微修改一下构造函数即可。需要注意的是:对话框的wmp控件其DDX的成员变量需从CWnd派生的类型才行。例如这里我添加的CWMPPlayer4是从CWnd派生的,所以DDX映射如下:
DDX_Control(pDX, IDC_OCX1, m_player);
最后,发现生成的wrapper基类的问题是ide的一个bug,已经有人提出,应该在orcas beta2中会解决吧,期待。。。
在vs2003呢? 按照前面的步骤操作了一下,新建一个MFC 对话框,然后在里头插入一个wmplayer控件,紧接着为其添加一个成员变量,发现向导自动为其生成一个ocx1的窗口派生类(CWnd)的成员。 这个ocx1怎么用啊,没有直接将wmp控件的各个接口给包装出来啊,难道还是需要我们用原生接口或者用IDispatch接口啊?
后面摸索了一下,发现在vs2003以及后面的版本中生成wraper类的方法。
选中工程,点击右键选择"添加类",在里头选择"从ActiveX控件中生成MFc类",之后选择我们的控件(从系统当前以及注册的控件列表)。这里我们选中"Windows Media Player"控件,选择后下面的左边会列出wmp的一些接口,选择左边的接口,添加到右边,向导就会为此接口生成对应的包装类。到此应该发现和vc6实际上是一样的吧。例如这里我们选择IWmpPlayer接口,向导就会为其包装为CWMPPlayer4类,然后我们可以为对话框中的wmp控件添加一个控件成员,设置其类型为CWMPPlayer4,之后就可以用如下代码进行播放控制了:
CWMPPlayer4 m_player; // dlg头文件中定义的成员变量
// 播放文件
CWMPSettings2 set = m_player.get_settings();
set.put_autoStart(FALSE);
m_player.put_URL(_T("e://testproject//media//昆明湖.mp3"));
// 控制暂停和播放
CWMPControls3 control = m_player.get_controls();
if (m_bPause == true)
{
control.play();
}
else
{
control.pause();
}
m_bPause = !m_bPause;
等等操作......
这里需要注意一个问题:在前面所说的通过ActiveX创建Mfc类的时候,测试发现,第一个添加的是从Cwnd派生出来的,而后面的是COleDispatchDriver派生出来的。不过也不一定是这样,我先添加了CWMPPlayer4 CWMPControls2,然后添加CWMPSettings,发现CWMPSettings又是从Cwnd派生的,不过没关系了,直接修改其基类为COleDispatchDriver,另外稍微修改一下构造函数即可。需要注意的是:对话框的wmp控件其DDX的成员变量需从CWnd派生的类型才行。例如这里我添加的CWMPPlayer4是从CWnd派生的,所以DDX映射如下:
DDX_Control(pDX, IDC_OCX1, m_player);
最后,发现生成的wrapper基类的问题是ide的一个bug,已经有人提出,应该在orcas beta2中会解决吧,期待。。。
追问
我打开 vc6.0后, 单击菜单 Add To Project->Components and Controls 出现了相应的添加组(控)件对话框,但是该框体里没有 任何东西 如何解决 请高手指教 VC6.0以管理员身份运行也不行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询