如何在DELPHI中捕捉窗口最小化的事件(20分)

  • 主题发起人 主题发起人 13606189222
  • 开始时间 开始时间
1

13606189222

Unregistered / Unconfirmed
GUEST, unregistred user!
我是一个初学者,各位DFW,我想在窗口最小化时响应一些代码,但如何识别窗口最小化?
 
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMSysCommand(var Msg: TWMSysCommand);
message WM_SYSCOMMAND;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand;
begin
if (Msg.CmdType = SC_MINIMIZE) or
(Msg.CmdType = SC_MAXIMIZE) then
MessageBeep(0) else
inherited;
end;
 
给你解释一下:
最小化消息SC_MINIMIZE ‘在’WM_SYSCOMMAND里,定义一个过程处理该消息:
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
如果是最小化消息SC_MINIMIZE 就做你要做的,不是就干原来的:inherited;
[:)][:)][:)]
 
最小化的情况同理
procedure WMGetMinMaxInfo(var Message :TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;
procedure TSendFaxForm.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
最大化 最小化
begin
;with Message.MinMaxInfo^ do
;begin
; ;ptMaxSize.X := Form1.Width; ;//最大化时宽度
; ;ptMaxSize.Y := Form1.Height; //最大化时高度
; ;ptMaxPosition.X :=Form1.Left; //最大化时左上角横坐标
; ;ptMaxPosition.Y := Form1.Top; //最大化时左上角纵坐标
; end;
; Message.Result := 0; //告诉windows 窗体已经改变了
;inherited;
end;
 
哈哈,大家都有份!
 
后退
顶部