拦截消息的方法定义:

procedure 自定义方法名(var Msg: TMessage); message 待拦截的消息常量;

当你想拦截某个消息时,只需按上边的方法结构声明即可.
比如响应移动消息的方法命名:
procedure CustMove(var Msg: TMessage); message WM_MOVE;


为什么窗口大小改变后,就会触发 WM_SIZE 消息????
Delphi中关键字message的用法???
怎么定义自己的消息??

转自Lhttp://bbs.csdn.net/topics/390392261 //无聊时狂下论坛,总有收获的。

里面提到一段代码

procedure TForm1.Button1Click(Sender: TObject);
var
  Size: Integer;
begin
  { 先将按钮自身移到窗口左上角,以免窗口缩小后被遮挡 }
  (Sender as TButton).Left := 0; //这个 Sender 从代码中理解就是 触发该单击事件的对象。
  (Sender as TButton).Top := 0; //再将该对象强制转换为 TButton 类型,再调用类型中的方法。
  { 获取一个随机数,可正可负 }
  Randomize;
  Size := Random(100) - 50;
  { 设置窗口的新大小 }
  Width := Width + Size;
  Height := Height + Size;
  { 当窗口大小改变后,就会触发 WM_SIZE 消息,从而调用我们定义的 TForm1.Refresh }
end;

 

posted @ 2013-04-04 18:27  stma  阅读(201)  评论(0)    收藏  举报