在线求救,怎样能最小化所有的窗口,但不最小化自己的窗口,(50分)

  • 主题发起人 主题发起人 qiu_shuier
  • 开始时间 开始时间
Q

qiu_shuier

Unregistered / Unconfirmed
GUEST, unregistred user!
[red][/red][:(!][?]
 
我是说通过编程,把别的窗口都最小化,只剩下自己的窗口
 
遍历全部窗口 --> 读窗口状态 --> 不是最小化? & 不是自己? --> 最小化 。
 
向所有窗口广播一个消息,忘了是哪个了,自己的程序吃了这个消息或再<br>还原就得了
 
先模拟[win]+[m]或[win]+[d]<br>不能最小自己可用下面方法:<br>procedure CreateParams(var Params: TCreateParams);override;<br><br>procedure TForm1.CreateParams(var Params: TCreateParams);<br>begin<br>inherited CreateParams( Params);<br>&nbsp; Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;<br>&nbsp; Params.WndParent := 0;<br>end;
 
<br>procedure MinALL;<br>var<br>&nbsp; hw,my:HWnd;<br>begin<br>&nbsp; my:=Application.handle;<br>&nbsp; hw:=Application.handle;<br>&nbsp; while hw&gt;0 do<br>&nbsp; begin<br>&nbsp; &nbsp; if (IsWindowVisible(hw)) and (hw &lt;&gt; my) then<br>&nbsp; &nbsp; &nbsp; Postmessage(hw,WM_SYSCOMMAND,SC_MINIMIZE,0);<br>&nbsp; &nbsp; hw:=GetnextWindow(hw,GW_HWNDNEXT);<br>&nbsp; end;<br>end;<br>给分<br>
 
Postmessage(HWND_BROADCAS,WM_SYSCOMMAND,SC_MINIMIZE,0); &nbsp;<br><br>(HWND_BROADCAS--==-1在windows中这不是一个窗口句柄,而代表向<br><br>all top-level windows in the system发送消息啊,当然自己也未能幸免,因此<br><br>ShowWindow(self.handle,SW_RESTOR)
 
首先用EnumWindow这个Api获得当前所有窗体及其句柄,然后把出自己窗口的所有窗口最小<br>化。以前写过的不过代码不在手上。查看一下Delphi 5.0开发人员指南吧
 
后退
顶部