关于在任务栏生成小图标的问题?(100分)

  • 主题发起人 主题发起人 datoncg
  • 开始时间 开始时间
D

datoncg

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在要求程序启动后主界面就不可视<br>我在oncreate中用showwindow,setwindowlong不起作用。程序启动后主界面可见.<br>用setwindowlong(,,ws_extoolwindow)(不好意思记不住了)时,若任务栏<br>设为隐藏,window可以在左下方可见,若不隐藏则不可见了。弄不明白。<br>当我按下最小化按钮,主界面怎样不在任务栏上,而在在任务栏生成小图标<br>(最好不用sys_command).。
 
你用第三方控件AHM,很容易做到的。
 
有email吗,我手头有一个好用的小程序,给你发过去。呵呵,如果好用的话可别忘了给分。
 
使用控件很容易实现的
 
N多这种控件
 
CoolTrayIcon &nbsp; v2.5.1<br>可设置MinimizeToTrayIcon为True,则Form最小化时不显示在任务栏上。<br>有源代码<br>http://www.delphibyte.com/download/softdown.php?softid=349&amp;url=http://61.132.118.165/soft/delphi/Delphi3/TTRAYICON.ZIP<br><br>只要设置一下其 showmainform 或 hidemainform 即可以实现隐藏或出现了<br>另外还可以实现在状态栏里面变换图标<br>
 
hnlygtjj:第三方控件AHM没有!<br>fjnnz:my email:datoncg1@21cn.com<br>能否用WINDOWS API做个事例<br>
 
在Form的Create事件和Active事件中添加如下代码看看,<br>&nbsp; &nbsp; ShowWindow(frmMain.Handle,SW_HIDE);<br>&nbsp; &nbsp; ShowWindow(Application.Handle,SW_HIDE);<br>
 
至于小图标可以看看试试下面的代码:InstallIcon是加载图标,UnInstallIcon是<br>卸载图标,在单元的前面添加<br>const<br>&nbsp; &nbsp; ICON_ID = 1;<br><br>procedure TfrmMain.InstallIcon;<br>var<br>&nbsp; &nbsp; IconData: TNotifyIconData;<br>begin<br>&nbsp; &nbsp; sysTrayIcon:=TIcon.Create;<br>// &nbsp; &nbsp;sysTrayIcon.LoadFromFile('Flap.ico');<br>&nbsp; &nbsp; sysTrayIcon:=Application.Icon;<br>&nbsp; &nbsp; IconData.cbSize:=sizeof(IconData);<br>&nbsp; &nbsp; IconData.Wnd:=Handle;<br>&nbsp; &nbsp; IconData.uID:=ICON_ID;<br>&nbsp; &nbsp; IconData.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;<br>&nbsp; &nbsp; IconData.uCallbackMessage:=MI_ICONEVENT;<br>&nbsp; &nbsp; IconData.hIcon:=sysTrayIcon.Handle;<br>&nbsp; &nbsp; IconData.szTip:='FlapWinTool [Ver1.0]';<br>&nbsp; &nbsp; Shell_NotifyIcon(NIM_ADD,@IconData);<br>end;<br><br>procedure TfrmMain.UnInstallIcon;<br>var<br>&nbsp; &nbsp; IconData: TNotifyIconData;<br>begin<br>&nbsp; &nbsp; IconData.cbSize:=sizeof(IconData);<br>&nbsp; &nbsp; IconData.Wnd:=Handle;<br>&nbsp; &nbsp; IconData.uID:=ICON_ID;<br>&nbsp; &nbsp; Shell_NotifyIcon(NIM_DELETE,@IconData);<br>end;
 
我在oncreatehe和Active中用showwindow,setwindowlong不起作用。程序启动后主界面可见.<br>用setwindowlong设为TOOLWINDOW,若任务栏设为隐藏,window可以在左下方可见,若<br>不隐藏则不可见了。弄不明白。<br>当我按下最小化按钮,主界面怎样不显示在任务栏上,而在在任务栏生成小图标<br>(最好不用wm_syscommand).。
 
datoncg,东西给你发过去了,看看先
 
方法1:你可以在程序创建之前通过编译命令将应用程序类型改成Library,创建之后<br>在改回EXE程序,这样就不会显示在任务栏。<br>方法2:在OnShow事件中加入ShowWindow(Application.Handle, SW_HIDE),可以在<br>程序启动时隐藏任务栏窗口,但窗口显示后会失效。所以剩下的就是你要监视窗口<br>的状态,根据状态再隐藏了。
 
&gt;&gt;&gt;datoncg,东西给你发过去了,看看先<br>fjnnz:<br>&nbsp;我用DELPHI打开!(TOOL文件),是乱码!<br>再来一个!结束这个问题!80分怎么样!<br><br>
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
558
import
I
后退
顶部