delphi消息结构
消息描述
Tmsg是
消息结构
typedef struct tagMSG {
} MSG;
delphi消息结构---Tmesssage:
TMessage
其中Integer是个判断变量条件,0和1只是为了给变体字段分组,0部分的三个字段和1部分的六个字段共享一段内存。这段内存大小是12个字节,你要么用WParam,
LParam...来访问,要么用WparamLo,WParamHi来访问。用不到0和1这两个值的,他们仅仅为可读性而存在。
我们知道一个32位整数在内存中是高字节在后,低字节在前,因此,WParamLo被对应到WParam的低16位,WParamHi被对应到WParam的高16位。依次类推。
实例:
Delphi用户定义消息:
Delphi中用户定义的消息大小必须是128bit,也就是16字节。
Delphi在接受到Tmesssage后,会自动把该消息转换成用户定义的消息结构
实例:
procedure CMSocketMessage(var Message: TCMSocketMessage); message CM_SOCKETMESSAGE;
CM_SOCKETMESSAGE消息触发CMSocketMessage函数,
CM_SOCKETMESSAGE消息是Tmesssage结构。
TCMSocketMessage是用户自定义消息机构,结构如下:
delphi自动进行如下转换
TCMSocketMessage .Msg=Tmessage.Msg
TCMSocketMessage.Socket=Tmessage.WParam
TCMSocketMessage.SelectEvent=地位字段(Tmessage.Lparam);
TCMSocketMessage.SelectError=高位字段(Tmessage.Lparam);
TCMSocketMessage.Result =Tmessage.Result