为什么我的程序在点击最小化后,不最小化至任务栏,而是桌面的左下角 ( 积分: 16 )

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

lyzyh1209

Unregistered / Unconfirmed
GUEST, unregistred user!
这怎么解决。
 
因为你的窗体不是程序的主窗体<br><br>处理Form的最小化消息<br><br>private<br>&nbsp;&nbsp;procedure&nbsp;WMSysCommand(var&nbsp;Msg:&nbsp;TWMSysCommand);&nbsp;message&nbsp;WM_SYSCOMMAND;<br><br>procedure&nbsp;TForm2.WMSysCommand(var&nbsp;Msg:&nbsp;TWMSysCommand);<br>begin<br>&nbsp;&nbsp;if&nbsp;Msg.CmdType&nbsp;=&nbsp;SC_MINIMIZE&nbsp;then&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;Application.Minimize;<br>&nbsp;&nbsp;inherited;<br>end;
 
报错,unknow&nbsp;directive;‘message’
 
implementation区里不用&nbsp;message&nbsp;WM_SYSCOMMAND,并且要加TForm<br><br>Unit&nbsp;Unit2;<br>&nbsp;<br>interface<br><br>uses<br>&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Variants,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,<br>&nbsp;&nbsp;Dialogs;<br><br>type<br>&nbsp;&nbsp;TForm2&nbsp;=&nbsp;class(TForm)<br>&nbsp;&nbsp;private<br>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;WMSysCommand(var&nbsp;Msg:&nbsp;TWMSysCommand);&nbsp;message&nbsp;WM_SYSCOMMAND;<br>&nbsp;&nbsp;public<br>&nbsp;&nbsp;end;<br><br>var&nbsp;<br>&nbsp;&nbsp;Form2:&nbsp;TForm2;<br><br>implementation<br><br>{$R&nbsp;*.dfm}<br><br>procedure&nbsp;TForm2.WMSysCommand(var&nbsp;Msg:&nbsp;TWMSysCommand);<br>begin<br>&nbsp;&nbsp;if&nbsp;Msg.CmdType&nbsp;=&nbsp;SC_MINIMIZE&nbsp;then&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;Application.Minimize;<br>&nbsp;&nbsp;inherited;<br>end;<br><br>end.
 
很谢谢你这么完了还回我信息,可以还不行。会是哪出的问题哪,疯了
 
你看看用了什么控件,有些控件,设计不好,拦截了一些消息,所以
 
想想&nbsp;是加了什么新内容后出现这个问题的<br>看看&nbsp;Application.MainForm是什么<br>试试&nbsp;Application.Minimize;&nbsp;能不能最小化至任务栏
 
如果你用类似下面的语句隐藏了程序在任务栏上的按钮,最小化时,就会出现你所说情况。<br>SetWindowLong(Application.Handle,&nbsp;GWL_EXSTYLE,GetWindowlong(Application.Handle,&nbsp;GWL_EXSTYLE)&nbsp;or&nbsp;WS_EX_TOOLWINDOW)
 
你最小化的那个窗体不是MainForm&nbsp;,主窗体只是被HIDE起来了。建议参考ANiDelphi,的方法,或者将当前窗体设置为主窗体。
 
后退
顶部