有关消息函数的一些问题(100分)

  • 主题发起人 主题发起人 lhlh_0_0
  • 开始时间 开始时间
L

lhlh_0_0

Unregistered / Unconfirmed
GUEST, unregistred user!
在申明消息函数的时候,如何确定消息的类型,比如:
procedure WmMouseMove (var Msg: TWMMouse);
message wm_MouseMove;
procedure WmLBUttonDown (var Msg: TMessage);
message wm_LBUttonDown;
两个函数中,为何msg的类型不同,如何确定,如何辨别,谢谢
 
你都使用TMessage就可以了
当然了,对于特定的消息,可以使用特殊的类型,这种类型便于你使用
当然使用TMessage是肯定可以的
 
TMessage 是消息祖先类 用TMessage均行
 
具体用的时候,自己去查查帮助。
最好使用delphi封装了的消息
 
一般的, procedure WmXXXX(var Msg: TWMXXXX); Message WM_XXXX
XXXX 为消息名(不加 WM),但有少量的消息没有 TWMXXXX ,只能用 TMessage 代替。
建议你能用 TWMXXXX 就用,不行再 TMessage
 
实际上是用到了变体记录的概念
参数传递时实际传递是按照TMessage类型传递的,是固定大小的一块数据,用Txxx是因为有些消息的参数是WParam,LParam没法一下子搞清楚的,
实际上你都可以用TMessage来做参数,但那样,你必须根据具体消息的结构从WParam,LParam取出具体内容
利用变体记录后,Windows内部还是按TMessage传递,但程序处理时则可以直接取得特殊定义的参数,简化程序的编写,也使程序易读
 
多人接受答案了。
 
谢谢大家
 
后退
顶部