文章类型: VC&C++
关键词: VC,C++,MFC,OCX,控件,事件,添加,处理
内容摘要: MFC OCX 控件事件的添加和处理

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

2018/5/29 15:23:01    来源:apple    阅读:

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

 1.png

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

2、添加事件:

事件应该是属于窗口的,所以在Ctrl类上单击右键-》添加:

2.png

3、添加一个事件“hello”:

3.png

该事件的参数是刚才那个字符串处理的结果,这里是long型。

4、在接口实现里调用事件函数:

// COcxEventCtrl 消息处理程序  
  
LONG COcxEventCtrl::MyInterface(LPCTSTR strValue)  
{  
    AFX_MANAGE_STATE(AfxGetStaticModuleState());  
    CString str = strValue;  
    int len = str.GetLength();  
    hello(len);  
    return 0;  
}

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

5、响应事件:

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

void COcxEventTestDlg::OnBnClickedButton1()  
{  
    m_OcxEvent.MyInterface(L"hello world !");  
      
}

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

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

4.png

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

void COcxEventTestDlg::helloOcxeventctrl1(long len)  
{  
    CString str;  
    str.Format(_T("%d"),len);  
    AfxMessageBox(str);  
}

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

5.png

10个字母+2个空格+一个感叹号 = 13.   OK了。

↑ 上一篇文章:17款奇骏智能互联连接成功--高德导航 关键词:17,款,奇骏,智能互联,连接,成功,高德导航 发布日期:2018/5/24 13:49:22
↓ 下一篇文章:MFC中OCX控件使用到的InvokeHelper()函数用法 关键词:MFC,OCX,控件,InvokeHelper(),函数.. 发布日期:2018/5/29 16:46:52
相关文章:
VC++/MFC精讲多练#004:DIY一个漂亮的滚动条控件 关键词:VC++/MFC精讲多练#004:DIY一个漂亮的滚动条控件 发布日期:2016-10-09 14:40
MFC中如何在Ocx控件中来驱动ocx事件 关键词:如何,Ocx,控件,驱动,ocx,事件 发布日期:2018-05-29 17:10
vc++深入跟踪MFC程序的执行流程 关键词:vc++,深入,跟踪,MFC,程序,执行流程 发布日期:2016-08-10 09:56
相关目录:.NETVC&C++
我要评论
正在加载评论信息......