如何让主窗体最小化时,其它窗体不受影响?(18分)

  • 主题发起人 主题发起人 ynduanlian
  • 开始时间 开始时间
Y

ynduanlian

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个窗体,form1,form2<br>应用程序启动时进入主窗体form1,form2 为从属窗体:<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; form2.show ;<br>end;<br><br>当主窗体form1最小化时所有窗体(即form2),也不见了,如何才能让form1最小化不影响form2?或者说form2继续在显示在屏幕上?<br>我用了<br>procedure TForm2.FormCreate(Sender: TObject);<br>begin<br>&nbsp; self.ParentWindow:=GetDesktopWindow();<br>end;<br><br>之后我发现Form2窗体上菜单不见了!显示不出来了。<br><br>其实就如同“金山词霸”中的“生词本”,<br>“金山词霸”最小化缩到托盘中时,<br>“生词本”仍然在屏幕上不受影响。
 
form2是form1的子窗体,主窗体最小化,子窗体怎么能不最小化。<br>如果达到你说的效果,form2不能设置为form1的子窗体,而应该设置成一般窗体
 
金山词霸 与 &nbsp;生词本是两个独立的程序 他们之前的通信应是属于进程通信。<br>你看一个 金山词霸 目录就知道了 那里有多个可执行程序 。
 
我所说的两个窗体都不是MDI类型的。
 
都不是MDI类型那还不容易,就像正常操作一就可以了,,,
 
怎么个正常操作,正常操作就是如果Application的启动窗体Form1最小化了,其它窗体也不会再留在屏幕上。
 
看看这样行不行。<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; Form2 := TForm2.Create(Self);<br>&nbsp; Form2.ParentWindow := GetDeskTopWindow();<br>&nbsp; SetWindowLong(Form2.Handle,GWL_STYLE,WS_OVERLAPPEDWINDOW);<br>&nbsp; Form2.Menu := Form2.MainMenu1;<br>&nbsp; Form2.Show ;<br>end;
 
知道了,Override form2的CreateParams过程。
 
后退
顶部