Msg :TMsg 怎样转换成 Message :TMessage 的消息类型(50分)

V

vfphome

Unregistered / Unconfirmed
GUEST, unregistred user!
在Application.OnMessage中得到的消息变量 (var Msg: TMsg; var Handled: Boolean);
中的 Msg :TMsg 怎样转换成 Message :TMessage 的消息类型
我起码接用 TMessage(Msg) 或 TMessage(Msg.Message)
都有不行,,,怎样才行请高手指点,
在线等待
如问题瓿得不明白,请询问..............我会立即补充详细.....
 
看看就知道了...

{ Message structure }
PMsg = ^TMsg;
tagMSG = packed record
hwnd: HWND;
message: UINT;
wParam: WPARAM;
lParam: LPARAM;
time: DWORD;
pt: TPoint;
end;
{$EXTERNALSYM tagMSG}
TMsg = tagMSG;
MSG = tagMSG;
{$EXTERNALSYM MSG}

PMessage = ^TMessage;
TMessage = packed record
Msg: Cardinal;
case Integer of
0: (
WParam: Longint;
LParam: Longint;
Result: Longint);
1: (
WParamLo: Word;
WParamHi: Word;
LParamLo: Word;
LParamHi: Word;
ResultLo: Word;
ResultHi: Word);
end;
 
TMsg , TMessage 二者难道没有任何联系吗?
为何 Messgae :Tmessge -> TWMMouse 可以用 TWMMouse(Message)转换?
Msg :TMsg , TMessage二者可以这样吗 TMessage(Msg.LParam) ?
 
TMessage 和 TWM.... 有意义的字段可以对应起来, 并且所占的空间是一样的

TMsg和TMessage有意义的字段不能对应起来, 除非你分别赋值, 而且他们在内存中
的尺寸也不同....

如果你能够确定Msg.LParam中保存的是一个TMessage类型则可以, 不过好像不会是
这种类型, 保存PMessage还可能...
 
顶部