为什么我的窗口不能隐藏(80分)

  • 主题发起人 主题发起人 牛龙
  • 开始时间 开始时间

牛龙

Unregistered / Unconfirmed
GUEST, unregistred user!
我要生成一个TRAY Icon的应用程序,可是主窗口老是没法隐藏.我是重载了<br>procedure TForm1.CreateParams(var Params:TCreateParams);<br>begin<br>&nbsp; inherited CreateParams(Params);<br>&nbsp; Params.Style:=(Params.Style or WS_EX_TOOLWINDOW)and not WS_VISIBLE;<br>end;<br>函数,但是老是没法隐藏它
 
在*.dpr文件里加上这一句:<br>application.showmainform:=false;
 
cAkk怎么无处不在!又来晚了。
 
cAkk说得对,这主要由于Form1为主窗体.
 
用cAKK的方法,任务栏中会出现一个应用程序图标,可以简单的隐藏它,<br>但是程序启动时会出现闪烁.可以用以下方法解决.<br>添加一个新单元:<br>unit RunFirst;<br>interface<br>implemention<br>initialization<br>&nbsp; IsLibrary := True;<br>end.<br><br>然后改变.dpr<br><br>uses<br>&nbsp; RunFirst in 'RunFirst.pas', //一定要在第一行<br>&nbsp; Forms,Windows,<br>&nbsp; ....<br>&nbsp; ....<br><br><br>begin<br>&nbsp; Application.ShowMainForm ;= False;<br>&nbsp; IsLibrary := False; // 把IsLibrary设置回来<br>&nbsp; Application.CreateForm(....);<br>&nbsp; .....<br>&nbsp; Application.Run;<br>end.<br><br>
 
&gt;&gt;任务栏中会出现一个应用程序图标<br>不会吧! 你搞错了吧?
 
&gt;&gt;kangxy<br>不用那么麻烦吧?<br>最简单的办法<br>procedure TForm1.FormShow(Sender: TObject);<br>begin<br>&nbsp; showwindow(application.handle,sw_hide);<br>end;<br><br>
 
&gt;&gt;任务栏中会出现一个应用程序图标<br>&gt;&gt;不会吧! 你搞错了吧?<br>我刚刚试验过了,确实没有你说的"应用程序图标",你是不是看错了?<br>&nbsp;<br>
 
to cAkk<br>&nbsp; &gt;&gt;任务栏中会出现一个应用程序图标<br>并不是指右下角的任务栏通知区域,而是任务栏按钮。
 
确实没有牙!我说的就是toolbar上的按钮,确实没有牙! 我刚刚特意试验的.<br>我用的是win98+D4
 
关键就出在application.showmainform:=false;<br>我刚才忘了加上这一句,加上了任务栏按钮就不出现了。<br>
 
我已经说的很清楚了,是程序启动时"闪烁",机器快自然<br>不容易看出来.但影响程序的专业性.
 
我也说得很清楚了:<br>Application.ShowMainForm ;= False;<br>之后什么也不会出现在任务栏,也根本没什么所谓的"闪烁",恐怕是你的程序有问题吧?
 
:)我又试了一下,w95+d3才有我说的问题.:)))
 
一句:<br>showwindow(application.handle,SW_HIDE);<br>重现时,一句:<br>application.restore;
 
这段代码让程序不在任务条中显示:<br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>&nbsp; ShowWindow(Application.Handle, SW_HIDE);<br>&nbsp; SetWindowLong(Application.Handle, GWL_EXSTYLE,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetWindowLong(Application.Handle, GWL_EXSTYLE) or<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WS_EX_TOOLWINDOW );<br>&nbsp; ShowWindow( Application.Handle, SW_SHOW );<br>end;<br>
 
多人接受答案了。
 
后退
顶部