该接口有一个字符串参数,表示调用者将传入一个字符串,传进来后,我们将取得字符串的长度。
2、添加事件:
事件应该是属于窗口的,所以在Ctrl类上单击右键-》添加:
3、添加一个事件“hello”:
该事件的参数是刚才那个字符串处理的结果,这里是long型。
4、在接口实现里调用事件函数:
[cpp] view plaincopy
// COcxEventCtrl 消息处理程序
LONG COcxEventCtrl::MyInterface(LPCTSTR strValue)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
CString str = strValue
int len = str.GetLength()
hello(len)
return 0
}
事件函数的名字就是事件名称,参数就是在添加事件时候设置的参数。这里我们计算了字符串的长度,然后把结果给了事件函数。控件里面要做到就做完了。
先要把这个.ocx文件放在c:/windows/system目录下,然后在CMD命令模式下键入:regsvr32 你的控件名.ocx (如WMP.OCX,即windows media player 控件)
需要说明的是,安装VISUAL C++时,系统自动注册登记软件附带的OCX控件。
以VISUAL C++ 6.0为例,用AppWizard生成MFC应用程序分为六个步骤,其中第三个步骤中可以指定支持ACTIVE X。如果指定该选项,则AppWizard将自动向应用程序添加以下两处代码。
(1)自动向Stdafx.h中加入头文件afxdisp.h
(2)是在InitInstance函数中激活OLE控制容器: AfxEnableContainer()
如果在创建应用程序过程中未加入上面两行,可以手动加入。
完成以上两步后,就可以向应用程序加入OCX控件对应的类,加入的过程是选择 Project菜单项,选择Add to Project,选择Components and Controls项,选择Registered ActiveX Controls项,点击insert按纽。
一般情况下,我们是在对话框中使用OCX控件。由于控件WMP.OCX,即windows media player已经出现在对话框控制列表中。把windows media player控件拖到对话框中,调整位置大小即可。
在windows media player控件点击右键,选择属性:
为了演示windows media player控件的功能,我们在该对话框增加一个按纽BUTTON1,下面代码是点击按纽后的处理函数。
void CPlayer::OnButton1(){// TODO: Add your control notification handler code here
((CWMPPlayer4 *)GetDlgItem(IDC_OCX_PLAYER))-SetUrl("C://Documents and Settings//Administrator//My Documents//我只愿为你守着约.mp3")
CString url=((CWMPPlayer4 *)GetDlgItem(IDC_OCX_PLAYER))-GetUrl()
MessageBox(url.GetBuffer(url.GetLength()))
//open a external media player
// ((CWMPPlayer4 *)GetDlgItem(IDC_OCX_PLAYER))-openPlayer(url)
CWMPControls control_player=((CWMPPlayer4 *)GetDlgItem(IDC_OCX_PLAYER))-GetControls()
control_player.play()}((CWMPPlayer4 *)GetDlgItem(IDC_OCX_PLAYER))返回windows media player控件对应的窗口。
SetUrl(****),设置windows media player控件播放文件的URL;
GetUrl(***),返回windows media player控件播放文件的URL;
GetControls(),返回CWMPControls播放控件
control_player.play()播放该URL文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)