怎样捕捉窗口被大小化的事件?

thinking_man 2000-02-22 10:07:00
当窗口的大小化按纽被按下后,做一些处理?
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin 2000-02-22
  • 打赏
  • 举报
回复
我理解你的意思,是想捕捉窗口被最大(小)化的事件,FormResize虽然行,但都是执行完后才发生,如想自己控制最好重载WndProc函数,过滤WM_SYSCOMMAND消息或者重载WM_GETMINMAXINFO消息:
protected
procedure WndProc(var Message: TMessage); Override;
procedure WMGetMinMaxInfo(var mmi: TGetMinMaxInfo); message WM_GETMINMAXINFO;
...

procedure TfrmMain.WndProc(var Message: TMessage);
begin
case Message.Msg of
WM_SYSCOMMAND:
case Message.WParam of
SC_MAXIMIZE: //最大化
//Do something
...
SC_MINIMIZE: //最小化
//Do something
...
else Inherited;
end;
else Inherited;
end;
end;
chenlibo 2000-02-22
  • 打赏
  • 举报
回复
如果窗体是程序主窗体则在Application的OnMinimize和OnRestore中触发;
如果是程序的其中一个窗体则在窗体的OnResize、OnActive和OnDeActive事件中触发,在触发的时候需要判断窗体的状态,如当窗体刚创建时会先后触发OnActive、OnResize事件,这时就需要在事件中自己来判断。
softdoctor 2000-02-22
  • 打赏
  • 举报
回复
FormResize
darkness 2000-02-22
  • 打赏
  • 举报
回复
form's onresize event

procedure TForm1.FormResize(Sender: TObject);
begin

end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧