为什么窗口大小改变后,就会触发 WM_SIZE 消息????
Delphi中关键字message的用法???
怎么定义自己的消息??unit Form1Unit;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure Refresh(var Msg: TMessage); message WM_SIZE;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ 此方法捕捉窗口尺寸被改变的消息 }
procedure TForm1.Refresh(var Msg: TMessage);
begin
{ 先将窗口的尺寸显示在标题栏中 }
Caption := IntToStr(Width) + ' - ' + IntToStr(Height);
{ 再调用默认消息处理函数,重绘窗口 }
inherited;
end;{ 随机调整窗口的大小 }
procedure TForm1.Button1Click(Sender: TObject);
var
Size: Integer;
begin
{ 先将按钮自身移到窗口左上角,以免窗口缩小后被遮挡 }
(Sender as TButton).Left := 0;
(Sender as TButton).Top := 0; { 获取一个随机数,可正可负 }
Randomize;
Size := Random(100) - 50;
{ 设置窗口的新大小 }
Width := Width + Size;
Height := Height + Size;
{ 当窗口大小改变后,就会触发 WM_SIZE 消息,从而调用我们定义的 TForm1.Refresh }
end;end.
Delphi中关键字message的用法???
怎么定义自己的消息??unit Form1Unit;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure Refresh(var Msg: TMessage); message WM_SIZE;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ 此方法捕捉窗口尺寸被改变的消息 }
procedure TForm1.Refresh(var Msg: TMessage);
begin
{ 先将窗口的尺寸显示在标题栏中 }
Caption := IntToStr(Width) + ' - ' + IntToStr(Height);
{ 再调用默认消息处理函数,重绘窗口 }
inherited;
end;{ 随机调整窗口的大小 }
procedure TForm1.Button1Click(Sender: TObject);
var
Size: Integer;
begin
{ 先将按钮自身移到窗口左上角,以免窗口缩小后被遮挡 }
(Sender as TButton).Left := 0;
(Sender as TButton).Top := 0; { 获取一个随机数,可正可负 }
Randomize;
Size := Random(100) - 50;
{ 设置窗口的新大小 }
Width := Width + Size;
Height := Height + Size;
{ 当窗口大小改变后,就会触发 WM_SIZE 消息,从而调用我们定义的 TForm1.Refresh }
end;end.
解决方案 »
- DElphi 调dll 报地址错误 求大虾帮~
- Embarcadero Technologies 2300万收购CodeGear
- 一个关于线段拉动和放大问题
- Memo已有内容“111222”,光标停1和2之间,双击,使得光标处增加文字aaa,怎么达到这样的效果?
- Delphi中的Record问题
- 简单的问题
- 初学这样的,觉得是很简单的思路,但找不出错误,有经验的帮忙看看
- 帮帮忙,大虾们!如何用select语句将sql表导出成文本格式
- 救命呀!TDBgird的滚动条怎么修改呀
- Delphi中调用系统存储过程
- 多人同时修改(并发)一张采购单据(单据数据从数据库的表里取出来),如何用锁防止数据不一致的情况?
- cxDBCheckComboBox的设置问题和数据读取
procedure 自定义方法名(var Msg: TMessage); message 待拦截的消息常量;当你想拦截某个消息时,只需按上边的方法结构声明即可.
比如响应移动消息的方法命名:
procedure CustMove(var Msg: TMessage); message WM_MOVE;
为什么窗口大小改变后,就会触发 WM_SIZE 消息????
Delphi中关键字message的用法???
怎么定义自己的消息??
------------------------------------------------------
如果还有疑问的话继续跟帖吧 :)
消息其实就是一个整数而已,比 WM_USER 大一些的可以作为自定义的消息。