delphi的Messaged单元定义如下:
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;
//这个怎么理解?integer到底从哪得到啊?
用的时候我
var Msg: TMessage
但是Msg.WParam,Msg.LParam到底取的那种类型呢?
麻烦知道的说详细点!感谢!
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;
//这个怎么理解?integer到底从哪得到啊?
用的时候我
var Msg: TMessage
但是Msg.WParam,Msg.LParam到底取的那种类型呢?
麻烦知道的说详细点!感谢!
我知道相当于C中的联合,我是问它在什么时候确定是什么类型呢(即integer值怎么得到的?)?
to everyone:
麻烦说详细点!
http://community.csdn.net/Expert/topic/3655/3655045.xml?temp=.7988245
WParam: Longint;
LParam: Longint;
Result: Longint);
1: (
WParamLo: Word;
WParamHi: Word;
LParamLo: Word;
LParamHi: Word;
ResultLo: Word;
ResultHi: Word);
end;
表示同一块内存中可以存放不同种类型的数据类型。0和1没有什么特别的意思,
可以这样理解,要么就是0里面的内容,要么就是1里面的内容。
哪个时候取0里面的内容?哪个时候取1里面的内容?