理解消息处理系统-gb∕t 21050-2019信息安全技术网络交换机安全技术要求
7.1理解消息处理系统所有VCL类都有一个处理消息的内建机制,被称为消息处理方法,或者消息处理程序。消息处理程序的基本思想是,类接收某种消息,并分发消息,然后根据接收到的消息调用一套方法中的一个方法。如果对于某特定的消息不存在指定的方法,则使用缺省的处理程序。下图显示消息分派系统:可视组件库(VCL)定义了一个消息分派系统,它把指向特定类的全部Windows消息(包括用户定义的消息)翻译为方法调用。你从不需要改变此消息分派机制。所有你需要做的只是创建消息处理方法。对此主题的更多的内容,参见7-7页的“声明新的消息处理方法”。 7.1.1 Windows消息中是什么? Windows消息是一个数据记录,它包含几个域。其中最重要的是一个用于识别消息的整数大小的值。Windows定义了很多消息,并在Messages单元中为所有消息声明了标识符。消息中其它的有用信息是二个参数域和一个结果域。一个参数含有16位,另一个参数含有32位。你经常会看到把这二个值当作wParam和lParam的Windows代码,它们分别代表字参数和长整型参数。经常,每个参数包含多个信息,你看到对名称的引用,比如lParamHi,它代表在长整型参数中的高位字。刚开始,Windows程序员不得不记住或者在Windows API中查找每一个参数所包含的信息。现在,微软给每一个参数命名。这个所谓的消息分离方法(message cracking)使得理解伴随每一个消息的信息是什么变得更简单了。例如,对WM_KEYDOWN消息的参数,现在被命名为nVirtKey和lKeyData,它比wParam和lParam给出更多的细节信息。为每一种类型的消息,Delphi都定义了一个记录类型,它为每一个参数都提供一个助记名。例如,鼠标消息在长整型参数中传递鼠标事件的x和y坐标,并且一个放在高位字中,
1.19MB
文件大小:
评论区