关于将程序最小化到右下角的问题,请大家帮忙(50分)

  • 主题发起人 主题发起人 yanyuwuhen
  • 开始时间 开始时间
Y

yanyuwuhen

Unregistered / Unconfirmed
GUEST, unregistred user!
我做程序时,将程序最小化到任务栏右下角,正常;但当我将form1.BorderStyle:=bsNone;后<br>当鼠标从任务栏的图标上移过时(更新),我的程序图标就消失了!这是为什么?应该怎样解决?<br>
 
用RxLib控件,宁不简单。
 
怎么做的?
 
用TrayIcon控间,很不错。
 
我希望不用控件解决它,是因为什么呢?!
 
我用的是delphi6.0,当我将borderstyle设为其它的非dialog类型时,也出现这个问题。<br>难道是bug!我实在改不过来了,只好靠大家了:)
 
用第三方控件来做罢
 
不用控件,把控件中的代码拿出来用也不错呀!!
 
查以前的贴子吧,大把。
 
大家可能没明白我的意思,我做的最小化正常,但当我将form1.BorderStyle改为非<br>dialogs(none等)时,这个托盘就不好使了(自动关闭了?),表现为:当我鼠标移<br>到上面时自动消失。??
 
是不是你定义ico的时候是直接用form的icon的句柄?如果form为bsnone,当然就没有了啊,<br>你可以先用imageedit编辑一下res文件,然后再调用res里面的icon。
 
to whaoye:<br>&nbsp; &nbsp;我在res中又建了一个icon,但还是这样。<br>我不知道除了icon其它的窗口句柄在窗口标题栏取消后是否会出问题?我将代码贴上,<br>请大家帮我看看,谢谢。<br><br>&nbsp; &nbsp; wnd :=findwindow(nil,'form1');<br>&nbsp; &nbsp; TrayHandle := FindWindow('Progman', nil);<br>&nbsp;//在右下角添加图标<br>&nbsp; &nbsp; tid.cbSize:=sizeof(TNOTIFYICONDATA);<br>&nbsp; &nbsp; tid.Wnd :=Wnd;<br>&nbsp; &nbsp; tid.uID :=2000;<br>&nbsp; &nbsp; tid.uFlags:=nif_Message or nif_Icon or nif_Tip;<br>&nbsp; &nbsp; tid.uCallBackMessage:=wm_TRAYNOTIFY;<br>&nbsp; &nbsp; tid.hIcon:=LoadIcon(hInstance,'ICON1');<br>&nbsp; &nbsp; Shell_NotifyIcon (nim_Add,@tid);<br>
 
LoadIcon(hInstance,'ICON1');<br>中的'ICON1'在哪里<br>为啥要调入图标<br>你可以直接用应用程序的图标<br>tid.hIcon:=Application.Icon.Handle;
 
to pcexplorer<br>&nbsp; &nbsp;icon1是res中的另一个图标;实际上,不管我用什么图标,只要我将form1.BorderStyle改为非<br>dialogs(none等)时,就出现我说的现象:托盘消失(当更新时/鼠标经过);
 
不会呀,我试过将窗口设成bsNone,但是没有消失呀<br>是不是设成bsNone后不能用MainForm的icon,而是要用Application.Icon.Handle<br>你可以试试Applicaion.Handle.Handle:=LoadIcon(0,IDI_WINLOGO);<br>我是这样试的<br>LoadIcon当然你可以调入其他图标,我是用的系统图标
 
to pcexplorer<br>&nbsp; &nbsp;我发现不是BorderStyle为什么,而是当它发生变化时就这样;<br>我用了一个苯方法解决了这个问题:当borderstyle发生变化时,就将托盘更新一次;<br>谢谢大家!
 
多人接受答案了。
 
后退
顶部