关于窗体的API(50分)

  • 主题发起人 主题发起人 linuxcrow
  • 开始时间 开始时间
L

linuxcrow

Unregistered / Unconfirmed
GUEST, unregistred user!
用什么API可以判断目前的窗体是不是最小化状态<br>另外用那个API或消息可以使窗体最小话
 
Form.WindowState不知道行不行?试试看。
 
通过截获WM_SYSCOMMAND消息可以判断目前的窗体是不是最小化状态<br>例如:<br><br>type<br>TForm1 = class(TForm)<br>public<br>procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;<br>end;<br><br>procedure TForm1.WMSysCommand;<br>begin<br>if Msg.CmdType = SC_MINIMIZE then<br>begin<br>// 如果窗体最小化,你的处理代码...<br>end;<br>DefaultHandler(Msg);<br>end; <br><br>使窗体最小化可以使用如下例子:<br>postmessage(h,WM_SYSCOMMAND,SC_MINIMIZE,0); <br><br>
 
&gt;&gt;用什么API可以判断目前的窗体是不是最小化状态<br>IsIconic <br>
 
用什么API可以判断目前的窗体是不是最小化状态<br>==&gt;GetWindowPlacement &nbsp;<br>&nbsp; &nbsp; BOOL GetWindowPlacement(<br>&nbsp; &nbsp; HWND hWnd, // handle of window<br>&nbsp; &nbsp; WINDOWPLACEMENT *lpwndpl // address of structure for position data<br>&nbsp; &nbsp;);<br>具体用法:<br>var<br>&nbsp; aa :PWindowPlacement;<br>begin<br>&nbsp; getmem(aa,sizeof(PWindowPlacement));<br>&nbsp; aa.length := sizeof(PWindowPlacement);<br>&nbsp; GetWindowPlacement(Handle ,aa );<br>&nbsp; if aa.showCmd = SW_MINIMIZE <br>&nbsp; then showmessage('找到了');<br>&nbsp; freemem(aa,sizeof(PWindowPlacement);<br><br>end;<br><br><br>另外用那个API或消息可以使窗体最小话<br>===&gt; ShowWindow<br><br>BOOL ShowWindow(<br><br>&nbsp; &nbsp; HWND hWnd, // handle of window<br>&nbsp; &nbsp; int nCmdShow // show state of window<br>&nbsp; &nbsp;);<br>具体用法:<br>var<br>&nbsp; &nbsp;wd :HWND;<br>begin<br>&nbsp; &nbsp;ShowWindow ( wd,SW_MINIMIZE) ; &nbsp;//使窗体最小;<br>end;<br><br>具体用法可参考Win 32 &nbsp;api HELP.<br><br>
 
Form.WindowState<br>和application.minimize;<br>要看他们用了什么api<br>可以直接瞧delphi的源代码
 
后退
顶部