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

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

2、添加事件:

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

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

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

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

[cpp] view plaincopy

 
  1. // COcxEventCtrl 消息处理程序
  2. LONG COcxEventCtrl::MyInterface(LPCTSTR strValue)
  3. {
  4. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  5. CString str = strValue;
  6. int len = str.GetLength();
  7. hello(len);
  8. return 0;
  9. }

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

5、响应事件:

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

[cpp] view plaincopy

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

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

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

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

[cpp] view plaincopy

 
  1. void COcxEventTestDlg::helloOcxeventctrl1(long len)
  2. {
  3. CString str;
  4. str.Format(_T("%d"),len);
  5. AfxMessageBox(str);
  6. }

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

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

最新文章

  1. Redis 队列操作
  2. felx项目属性(二)
  3. 不需要JAVAScript完成分页查询功能
  4. javascript MD5加密
  5. 历时一年,我的著作《第一行代码——Android》已出版!
  6. Jenkins: 1.x升级到2.x
  7. 可视化&地图__公司收集
  8. Zabbix告警脚本-短信
  9. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
  10. 【转载三】Grafana系列教程–Grafana的配置及运行
  11. Linux:客户端的实现
  12. 【378】python any() and all()
  13. JSP指示元素<%@ %> 与指示类型
  14. django复习-1-环境搭建和创建项目
  15. mkdir命令的-p和-m
  16. Windows Server 2008组策略安全实践(同样适用于域控制)
  17. TP框架控制器的空操作
  18. 检测com端口代码实现
  19. PHP多进程编程(2):管道通信
  20. Scala List 用法

热门文章

  1. 067、Java面向对象之不实例化对象报错
  2. hyper-V pcie直通
  3. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:匿名内部类
  4. 使用zabbix server监控tomcat实战案例
  5. 使用Ubuntu系统编译安装Zabbix企业级监控系统
  6. java 饮料换购
  7. 【题集】k倍区间(抽屉原理)
  8. 微信小程序循环中点击一个元素,其他的元素不发生变化,类似点击一个循环中的语音,其他的不发生点击事件
  9. db.mybatis.config
  10. Spring的AOP开发(基于ApsectJ的注解)