如何捕捉程序主窗体是否最小化,如果是并将其最大化?

Best999 2005-05-12 11:05:56
1:先判断程序窗体是否最小化;
2:如果是最小化,100秒后让其最大化。
...全文
143 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
XueYan 2005-05-17
  • 打赏
  • 举报
回复
我感觉还是使用Hide代替吧
笨笨菜 2005-05-17
  • 打赏
  • 举报
回复
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
procedure AppMessage(var Msg:TWMSYSCOMMAND);message WM_SYSCOMMAND;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure tform1.AppMessage(var Msg:TWMSYSCOMMAND);
begin
if msg.CmdType=sc_minimize then
showmessage('最小化')
else if Msg.CmdType = SC_Maximize then
showmessage('最大化');
inherited;
end;
end.
我从别处看到的。
FCU 2005-05-13
  • 打赏
  • 举报
回复
重载:wndproc 过程,捕获每一次要最小化的消息,不做任何处理
wleohe 2005-05-13
  • 打赏
  • 举报
回复
不知道是否该放在onhide?
wleohe 2005-05-13
  • 打赏
  • 举报
回复
public中
procedure WMSysCommand(var Message:TWMSysCommand);message wm_syscommand;

implemention中
procedure TForm1.WMSysCommand(var message:TWMSysCommand);
begin
inherited;
if IsIconic(Application.Handle) = true then
begin
inherited;
ShowMessage('the window is minimized');
Sleep(100*100);//1,你确定是100秒吗?2,sleep的参数我看IDE提示是ms(毫秒)
form1.WindowState:=wsMaximized
end;
end;

不过该方法有一个缺点,你窗口最小化后,你需要点击在任务栏的显示才会执行这个消息处理的过程。希望楼下的改进
Best999 2005-05-12
  • 打赏
  • 举报
回复
问题是窗体运行时最大化的,你将其最小化后,它的WindowState还是wsMaximized的.
我想还是有消息机制来处理好.
lencon 2005-05-12
  • 打赏
  • 举报
回复
是呀,这倒简单
myvicy 2005-05-12
  • 打赏
  • 举报
回复
不管它是否最大化,那你隔100秒最大化一次 ,也就实现了。
Best999 2005-05-12
  • 打赏
  • 举报
回复
楼上的:
form1.WindowState:=wsMaximized
是Form1的属性而已,当你在运行时将窗体由最大化变为最小化时,windowsState是不变的
lencon 2005-05-12
  • 打赏
  • 举报
回复
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if x<=100 then
x:=x+1 else
begin
form1.WindowState:=wsMaximized;
timer1.Interval:=0;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if form1.WindowState=wsMinimized then timer1.Interval:=1000;
end;
Best999 2005-05-12
  • 打赏
  • 举报
回复
问题是窗体运行时最大化的,你将其最小化后,它的WindowState还是wsMaximized的.
我想还是有消息机制来处理好.

829

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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