在C++Builder中定义事件的实现方法
++Builder是由Borland公司推出的一款可视化集成开发工具。C++Builder的集成开发环境(IDE)提供了一系列可视化快速应用程序开发(RAD)工具,让程序员可以很轻松地建立和管理自己的程序和资源。那么我们今天就来学习一下在C++Builder中定义事件的实现方法吧。
一、事件
大家是否知道在C++Builder中,事件是一种怎样的存在呢?其实事件就是一种委托模型,它是对于消息的封装。假如说大家都已经使用过VC(MicrosoftVisualC++,(简称VisualC++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。)的话,那么各位都应该知道在VisualC++中,是并没有什么事件存在的。有的仅仅只是消息处理函数,然而C++Builder中就是由事件处理函数来负责响应消息。

除此之外,事件自己本身也属于是一个指针,它是一个闭包来的。一般情况下,在C++Builder中有两种事件。这两种事件分别是自定义事件以及通知类型事件(就是我们说的TNotifyEvent指针,它是对于Windows消息的封装)。另外一个方面,相信大家也应该知道一点,那就是事件是通过一个虚拟函数点燃起来的。就好像说:ONEXIT事件就是由DOEXIT虚拟函数点燃起来的。那么为了方便大家的理解,小编在这里会编写一个关于自定义事件的示范例子。对于自定义事件最需要了解的一点是,大家的代码都一定会导致这些事件发生。这些事件不会为响应用户或系统的动作而自动发生,就算是可以编写导致事件确实以这种方式发生的代码也不例外。如果大家想要了解通知类型事件的话,大家可以在网上搜索一下资料,小编在这里就不详细的介绍了。
二、示范例子
有关于自定义事件的具体编程代码,如图所示:


大家看完以上的编程代码,其实可以十分明显的看出小编所编写代码中的事件就是对于WM_MYMESSAGE消息的封装。那么大家在上面的源代码中,应该可以在OBJECTINSPECTOR中,看到一个ONMYEVENT的事件,这个事件其实是和其它事件一模一样的。各位朋友只需要把编程代码写到这里来,那么就可以完成响应消息了。除此之外,大家还可以根据应用的需求来给出这个事件触发时候的行为。好吧,上面编程代码是有点点简陋,毕竟只是小编随手编写出来的。如果大家有兴趣的话,可以自已加以调整一下,编写出一个更加完美的源代码哟。
在C++Builder中定义事件的实现方法的更多相关文章
- Backbone.js 的 View 中定义事件
使用 Backbone 的 View 时,可以象传统 jQuery 那样定义事件,$("selector").click(function(){...}).幸运的是 Backbon ...
- Windows Server 2008中关闭事件跟踪程序的方法
Windows Server 2008跟Windows Server 2003一样,在关机的时候会弹出一个“关闭事件跟踪程序”窗口,当然微软这么做是处于安全的考虑啦,但是如果我们只是个人用用的话,那就 ...
- WebApi一个控制器中定义多个Get方法。
问题:怎样解决一个ApiController中定义多个Get方法或者Post方法? 答:要想实现一个ApiController中定义多个Get方法或者Post方法,则需要在WebApiConfig类中 ...
- stm32存储器映像和标准库中定义外设地址的方法
结合存储器映像理解stm32标准库中定义外设地址的方法. stm32f103zet6是32位的.它所能访问的地址空间范围为2^32=4GB,把4GB分为8个block,分别为block0-block- ...
- MVVM Light 新手入门(3) :ViewModel / Model 中定义“事件” ,并在View中调用 (无参数调用)
今天学习MVVM架构中“事件”的添加并调用,特记录如下,学习资料均来自于网络,特别感谢翁智华 的 利刃 MVVMLight 6:命令基础 在MVVM Light框架中,事件是WPF应用程序中UI与后台 ...
- MySQL中存储过程+事件的使用方法
一.背景 将界面操作日志存储在MySQL数据库中的operationlog表中,如果该表不能自动备份,表中的数据会越来越多,影响速度.可以定期将表中数据备份到另外一个表中来解决. 二.解决方案 1.使 ...
- js中获取事件对象的方法小结
原文地址:http://jingyan.baidu.com/article/d8072ac4594d6cec95cefdac.html 事件对象 的获取很简单,很久前我们就知道IE中事件对象是作为全局 ...
- 关于在Android中添加事件监听器的方法
一.匿名内部类 1.先找到那个控件(初始化) private Button bt1; //onCreate方法外 bt1 = (Button)findViewById(R.id.button1); ...
- ansible中定义变量的若干方法
Ansible支持十几种定义变量的方式 根据优先级排序的定义方式: Inventory变量 Host Facts变量 Playbook变量 Playbook提示变量 变量文件 命令行变量 1.Inve ...
随机推荐
- SwiftMailer 发送邮件时 提示fsockopen() 被禁用
站点转移空间,发送邮件的SwiftMailer 类提示错误如下: Warning: fsockopen() has been disabled for security reasons in D:\1 ...
- aspectj 与 spring 自定义注解
** * ErrorCode: * * @author yangzhenlong * @since 2016/7/21 */ @Target({ElementType.METHOD}) @Retent ...
- spring 配置properties 编码
<!-- properties 配置文件 --> <bean id="propertyConfigurer" class="org.springfram ...
- HttpServletResponse 解决中文乱码
response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setChara ...
- 神奇的操作--O(1)快速乘
从同机房大佬那里听来的... 用O(1)时间求出两个相乘超过long long的数的取摸的结果 神奇的操作... inline long long multi(long long x,long lon ...
- 单点登录-JWT(Json Web Tokens)
来自:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 1.跨域认证 1.用户向服务器发送用户名和密码. 2.服务 ...
- 傻瓜式Spring教学第二课
什么是依赖注入 先说什么是依赖 如下: class A{ B b; } class B{ } 则称A依赖B. 依赖:A的某些业务逻辑需要B的参与,如果不对A中的参数b进行实例化,那么A中的某些业务逻辑 ...
- python发送微信
申请企业微信 使用python发送信息到企业微信,同时支持python2与python3环境,需要先申请一个企业微信,然后创建应用,获取以下三个信息 企业IP.Agentid.Secret 网信为创建 ...
- 一些不常见的css知识
margin-top:20% ----------------20% 是宽度的20%
- hadoop install start-dfs.sh 失败
linux:ubuntu 16.04 LTS hadoop version: 2.7.3 JDK: java-9-open-jdk issue: start-dfs.sh start-dfs.sh:c ...