编写ocx控件怎么添加事件

编写ocx控件怎么添加事件,第1张

1、控件事件一般都是由对外的接口引发到,这里定一个接口先:

该接口有一个字符串参数,表示调用者将传入一个字符串,传进来后,我们将取得字符串的长度。

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文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11897945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存