__怎么隐藏主窗体??? 100分相送!!!我想要一个这样的功能: frmMain为主窗体,frmSmall为一控制主窗体显示/隐藏的小窗体.启动frmMain主窗体后,点最小化,frmMain主窗体将隐藏,且在任务栏也不能看见,但此时在电脑左上角显示frmSmall窗体,
如果想要显示主窗体frmMain,可以单一下frmSmall窗体,这时,主窗体frmMain显示,但frmSmall窗体隐藏.
就是上面这样一个简单的功能,我试了N久就是不成功,望各位大侠帮帮忙!!!
如果想要显示主窗体frmMain,可以单一下frmSmall窗体,这时,主窗体frmMain显示,但frmSmall窗体隐藏.
就是上面这样一个简单的功能,我试了N久就是不成功,望各位大侠帮帮忙!!!
设置窗体的onformclick事件,procedure可以写成
Hide;
Form2.Show
这类形式
SetWindowLong(Application.Handle, GWL_EXSTYLE,GetWindowLong(Application.handle, GWL_EXSTYLE)or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW);但是主窗体最小化,其他窗体也会最小化的
frmSmall:= TfrmSmall .Create(self);
Application.ShowMainForm:=false;
mainform.Hide;
frmSmall.Left:=0;
frmSmall.Top:=0;
frmSmall.Width:= 100;
frmSmall.Height:= 50;
frmSmall.Show;
但是mainform主窗体没有被隐藏,而且,主窗体最小化,frmSmall也被最小化了.
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
form1 code:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
private
procedure WMSYSCOMMAND(var msg:TMessage);message WM_SYSCOMMAND;
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.WMSYSCOMMAND(var msg:TMessage);
begin
if msg.WParam = SC_MINIMIZE then
begin
inherited;
ShowWindow(Application.Handle, SW_HIDE);
form2:=TForm2.Create(Application);
SetWindowPos(form2.Handle,HWND_TOPMOST,10,10,100,130,0);
form2.ShowModal;
end
else
inherited;
end;end.
form2 code:unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm2 = class(TForm)
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementationuses Unit1;{$R *.dfm}procedure TForm2.FormClick(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_NORMAL);
Close;
end;end.
这个和VC里的消息机制都是一样的,唉,都是基于windows系统的,消息机制当然一样啦,可惜我怎么就没有想到呢?汗一个!
同时,非常感谢"Forever_Young ",下午我一定结贴.
这句是关键吧