谁帮我解释一个消息和事件到底有什么不同。分全部送上。我是菜鸟。 每一个事件对应一条,或多条消息例如:ONBUTTONCLICK();对应WM_LEFTBUTTONCLICK而COMBOBOX的ONCHANGE对应CB_EDITCHANGE和CB_SELECTCHANGE 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在Windows中,每个窗口都有相应的窗口过程,用于处理窗口的消息。在Delphi中,每个TWinControl派生类(可以认为控件吧)都定义了一个mainWndProc,Windows调用他来处理执行消息处理。而MainWndProc对象方法会调用WndProc方法。这个WndProc方法可以重载,来自己处理消息。然后WndProc对象方法把消息逐步转换为事件。总归一句话,delphi的VCL把消息转变为事件,事件其实就是封装过的消息。例如: TWinCotrol类相应WMKeyDown消息。这个消息处理函数调用内部的DoKeyDown对象方法(处理一些特殊情况),DoKeyDown方法有调用虚拟的keyDown对象方法。最后KeyDown对象方法调用了OnKeyDown事件处理程序(keyDown事件应该较熟悉了吧)。这就是VCL如何把一个Windows消息转换为Delphi事件。 消息是从windows处理的,事件是一个函数句柄。 消息是windows可执行程序运行机制的组成部分,所有的windows可执行程序在运行时都是靠消息来驱动的。消息不可少。事件是针对某个对象构件而言的。它是为了配合可视化编程的需要而发展起来的。它提供了在某个适当时刻执行编程者的相应代码的机会。在某个适当时刻执行编程者的相应代码这个方面来说,消息和事件是类似的。 消息:你说的消息指的是在Windows系统中的含义吧!在Windows系统中采用的是事件驱动的方式,就是进程“静态”的等待Windows的消息,通过响应消息实现与用户或者是外部设备的交互操作。Windows为每一个进程维护一个消息队列,当Windows获得外部设备的中断时,比如用户按下了一个键,他会将这个“中断”翻译成合适的消息,他也有能力知道这个消息发给哪个进程,他将消息置于目标进程的消息队列中。而目标进程也并非是真正的静止的,目标进程在空闲时会不断的查询消息队列,看看有没有消息存在,发现存在消息后转入处理过程。事件:一般指的是在程序语言中的概念。在Delphi中,Delphi所编译的程序会正确翻译消息,并形成事件,Delphi实现事件的方式是调用元件的事件句柄,如果句柄不存在也就是为nil时,不会形成事件。 有一本《WINDOWS程序设计入门》的书,人民邮电出版社的,上面有很多关于WINDOWS的消息,设备驱动,画图等基本概念,很不错!能增强你的理解! vista下ocx怎么自动注册? 設置整個 程序的輸入法,請各位大俠幫幫偶,散分了。 关于Delphi和pythton的接口问题? 一个很讨厌的问题!! 这个错误是怎么回事? monthof(Date) 如何访问居于网内的另一台机器 Delphi record结构体 数据较多时出现数据紊乱和内存报错 一位浙大教授的演讲--什么是国富民强 本人已开发出CRM客户关系管理系统,希望和你讨论其市场问题? 请问为什么waveOutGetNumDevs不成功?说是undeclared identifier,但我在uses中加了shellapi的啦 如何在dbgrid中添加控件?
TWinCotrol类相应WMKeyDown消息。这个消息处理函数调用内部的DoKeyDown对象方法(处理一些特殊情况),DoKeyDown方法有调用虚拟的keyDown对象方法。最后KeyDown对象方法调用了OnKeyDown事件处理程序(keyDown事件应该较熟悉了吧)。这就是VCL如何把一个Windows消息转换为Delphi事件。
事件是针对某个对象构件而言的。它是为了配合可视化编程的需要而发展起来的。它提供了在某个适当时刻执行编程者的相应代码的机会。
在某个适当时刻执行编程者的相应代码这个方面来说,消息和事件是类似的。
事件:一般指的是在程序语言中的概念。在Delphi中,Delphi所编译的程序会正确翻译消息,并形成事件,Delphi实现事件的方式是调用元件的事件句柄,如果句柄不存在也就是为nil时,不会形成事件。