关于消息捕捉(WM_SIZE)
请问有那位高手知道如何捕捉主窗口的最小化消息,我只能捕捉非主窗口的(TWMSIZ. SizeType = SIZE_MINIMIZED)消息,APPLICATION.ONMESSAGE()根本不理会WM_SIZE。但是不论什么窗口最大化或一般改变大小的消息都能捕捉到。
问题点数:20、回复次数:5Top
1 楼detroit()回复于 2001-05-12 22:48:00 得分 0
Application.OnMessage只能处理用perform或者用postmessage发送的消息,对sendmessage发的消息无法处理,在一本书上讲了这个问题的,叫Delphi 5开发者指南吧,价格是138,封皮是金黄色的,非常厚的那本Top
2 楼WuHeHai(风之影)回复于 2001-05-12 22:59:00 得分 0
直接捕捉主窗口的最小化消息嘛!
如:
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
private
procedure WMSize(var Message: TWMSize); message WM_SIZE;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.WMSize(var Message: TWMSize);
begin
Label1.Caption := IntToStr(Form1.Width);
end;
Top
3 楼qiangcom(寂寞的冬天)回复于 2001-05-12 23:24:00 得分 0
最大化,恢复都可以的,但是最小化不行,好象很特殊!Top
4 楼Neo2D()回复于 2001-05-12 23:57:00 得分 0
9494我注意发现问题很久了,一直没有找到办法解决Top
5 楼xzgyb(老达摩)回复于 2001-05-13 11:36:00 得分 20
Application.OnMinimize
或
我是用WM_NCLBUTTONDOWN,然后判断Message.HitTest=HTREDUCE,这就是按了最小化按钮Top




