窗体最小化问题
小弟初学,向各位求助。程序在主界面(mainform)中调出一个窗体(form1)后,form1在最小化后,如何在任务栏中显示。(或者在下次需要调出时如何调出)。 问题点数:20、回复次数:9Top
1 楼hellolongbin(一个人(自从扩充话题改版,再也不去灌水乐园了))回复于 2005-09-22 08:58:53 得分 0
做成MDI子窗体,最小化在左下角Top
2 楼huasuiltd(晚风)回复于 2005-09-22 09:35:29 得分 0
请问除了这样,还有其他的办法吗?如显示在任务栏中,可以吗?Top
3 楼lovendII(流氓都做了城管)回复于 2005-09-22 09:45:52 得分 2
显示 在任务兰好像没那么容易哦。Top
4 楼hellolongbin(一个人(自从扩充话题改版,再也不去灌水乐园了))回复于 2005-09-22 11:03:06 得分 1
窗体不是工程,你想每个窗体都在任务栏显示,那不乱套了?Top
5 楼jackie168(http://soft.eastrise.net)回复于 2005-09-22 11:09:25 得分 8
可以的
procedure TForm2.FormCreate(Sender: TObject);
begin
SetWindowLong(self.Handle,GWL_EXSTYLE,GetWindowLong(self.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);
end;Top
6 楼linzhengqun(风。我回来了)回复于 2005-09-22 17:12:34 得分 8
这个其实是Delphi的一个毛病。
真的不知道VCL要设计一个Applicaton放在任务栏上面。也不知道为什么要ShowModal时要把所有的窗口设为不可用。
可以通过这样上面的办法来实现,也可以通过下面:
在Form类中:
procedure CreateParams(var Params: TCreateParams); override;
...
procedure TfrmASMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
WndParent := GetDesktopWindow();
end;
end;
不过建议不要在任务栏中出按钮出来,不然,以后麻烦事会很多,比如有窗体ShowMadal以后。。。
Top
7 楼skphoebe(小鲨鱼)回复于 2005-09-23 09:56:29 得分 0
同问下,我用findwindow得到窗体的handle,怎么把这个handle转化为TForm,
因为的我要判断这个窗体的状态是最小化,还是不激活状态,
SetForegroundWindow(handle)不能显示最小化窗体,而ShowWindow我必须先知道窗体的状态,
高手发言,谢谢了!
Top
8 楼Idle_(阿呆)回复于 2005-09-23 21:44:13 得分 1
if not IsIconic(Handle) then
SetForegroundWindow(Handle);Top
9 楼huasuiltd(晚风)回复于 2005-09-26 17:35:32 得分 0
谢谢各位朋友热心解答。快下班了,我到别的地方再发一问,明天上午一起结贴/Top




