窗体上有个trayicon组件
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if WindowState<>wsMinimized then
begin
WindowState:=wsMinimized;
Visible:=False;
setwindowpos(application.handle,hwnd_top,0,0,0,0,swp_hidewindow);
Action:=caNone;
end;
end;procedure TForm3.TrayIcon1DblClick(Sender: TObject);
begin
Visible:=True;
DefWindowProc(Handle,WM_SYSCOMMAND,SC_RESTORE,0);
DefWindowProc(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
end;
这样TrayIcon1DblClick可以让最小化的窗体最大化,但最大化后,窗体的最小化按钮就不管用了。试过postmessage和sendmessage,结果都一样,不知道为什么。
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if WindowState<>wsMinimized then
begin
WindowState:=wsMinimized;
Visible:=False;
setwindowpos(application.handle,hwnd_top,0,0,0,0,swp_hidewindow);
Action:=caNone;
end;
end;procedure TForm3.TrayIcon1DblClick(Sender: TObject);
begin
Visible:=True;
DefWindowProc(Handle,WM_SYSCOMMAND,SC_RESTORE,0);
DefWindowProc(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
end;
这样TrayIcon1DblClick可以让最小化的窗体最大化,但最大化后,窗体的最小化按钮就不管用了。试过postmessage和sendmessage,结果都一样,不知道为什么。
DefWindowProc(Application.Handle,WM_SYSCOMMAND,SC_RESTORE,0); 就可以了。
不过不知道为什么。有谁能给讲讲?
“Application.Handle是程序在任务栏上的句柄”,不知是真是假