您的位置:首页 > 其它

MFC OCX 控件事件的添加和处理

2014-12-17 14:10 288 查看
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;

}

事件函数的名字就是事件名称,参数就是在添加事件时候设置的参数。这里我们计算了字符串的长度,然后把结果给了事件函数。控件里面要做到就做完了。

5、响应事件:

新建一个对话框项目,添加你做好的控件,并为其关联一个变量;然后添加一个按钮,在按钮点击消息里,调用控件的对外接口,这里就一个接口:

[cpp] view plaincopy

void COcxEventTestDlg::OnBnClickedButton1()

{

m_OcxEvent.MyInterface(L"hello world !");

}

这里我们传入了" hello world ! "。接口函数调用后就会引发我们定义的事件。

在控件上单击右键,选择添加事件处理:



在实现代码里,添加如下内容:

[cpp] view plaincopy

void COcxEventTestDlg::helloOcxeventctrl1(long len)

{

CString str;

str.Format(_T("%d"),len);

AfxMessageBox(str);

}

这里消息响应函数传出了一个值,它就是计算出来的长度,我们把它弹出来看看:



10个字母+2个空格+一个感叹号 = 13. OK了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: