MFC OCX 控件事件的添加和处理
2024-09-02 02:23:17
1、控件的事件一般都是由对外的接口引发到,这里定一个接口先:
该接口有一个字符串参数,表示调用者将传入一个字符串,传进来后,我们将取得字符串的长度。
2、添加事件:
事件应该是属于窗口的,所以在Ctrl类上单击右键-》添加:
3、添加一个事件“hello”:
该事件的参数是刚才那个字符串处理的结果,这里是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 ! "。接口函数调用后就会引发我们定义的事件。
在控件上单击右键,选择添加事件处理:
在实现代码里,添加如下内容:
- void COcxEventTestDlg::helloOcxeventctrl1(long len)
- {
- CString str;
- str.Format(_T("%d"),len);
- AfxMessageBox(str);
- }
这里消息响应函数传出了一个值,它就是计算出来的长度,我们把它弹出来看看:
10个字母+2个空格+一个感叹号 = 13. OK了。
最新文章
- Redis 队列操作
- felx项目属性(二)
- 不需要JAVAScript完成分页查询功能
- javascript MD5加密
- 历时一年,我的著作《第一行代码——Android》已出版!
- Jenkins: 1.x升级到2.x
- 可视化&;地图__公司收集
- Zabbix告警脚本-短信
- golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
- 【转载三】Grafana系列教程–Grafana的配置及运行
- Linux:客户端的实现
- 【378】python any() and all()
- JSP指示元素<;%@ %>; 与指示类型
- django复习-1-环境搭建和创建项目
- mkdir命令的-p和-m
- Windows Server 2008组策略安全实践(同样适用于域控制)
- TP框架控制器的空操作
- 检测com端口代码实现
- PHP多进程编程(2):管道通信
- Scala List 用法