系统托盘的问题?
我在程序运行时生成了一个托盘,可是我在程序里改变窗体的BorderIcons属性时,托盘就没有了,有什么方法可以让托盘图标不消失?
我在程序运行时生成了一个托盘,可是我在程序里改变窗体的BorderIcons属性时,托盘就没有了,有什么方法可以让托盘图标不消失?
解决方案 »
- 求急啊,双核机收不到从服务器发送过来的数据包!!!
- 这样写有问题么?(急)
- 求助 acm
- 请问如何在高于WIN2000的操作系统下,其自己的应用程序标题栏风格仍然保持2000的风格,在线等...
- 怎样接收别的机子(不是电脑,而是像医疗仪器那样的可用COM口实时传出数据的仪器)的COM口数据?
- 我要报复!我被炸了?谁个我个威力大的qq炸弹!我给你50分!
- 请看运行时发生“致命性”错误............寻求解决方案
- 转化问题,高手帮忙~!
- 想问一下,用c++builder开发安卓,ios和delphi会不会有性能差距?
- 关于 query 对数据库修改的烦人问题!
- safeserial.ocx 如何注册?
- 300解!
那就再生成一次。
去掉图标也是用Shell_NotifyIcon,只不过第一个参数是NIM_DELETE;建议先看看这个函数的帮助
var
nid: TNotifyIconData;
begin
nid.cbSize:=sizeof(nid);
nid.uID:=1;
nid.Wnd:=handle;
Shell_NotifyIcon(NIM_DELETE,@nid); {这里要先删除,再改BorderIcons属性,不然有假象}
application.ProcessMessages;
if checklistbox1.Checked[0] then frmMain.BorderIcons:=frmMain.BorderIcons+[bisystemMenu];
if checklistbox1.Checked[1] then frmMain.BorderIcons:=frmMain.BorderIcons+[biMinimize];
if checklistbox1.Checked[2] then frmMain.BorderIcons:=frmMain.BorderIcons+[biMaximize];
if checklistbox1.Checked[3] then frmMain.BorderIcons:=frmMain.BorderIcons+[biHelp];
nid.szTip:='';
nid.cbSize := sizeof(nid);
nid.Wnd := Handle;
nid.uID := 1;
nid.hIcon := Application.Icon.Handle;
nid.uCallbackMessage := MSG_SERVER;
nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
if not Shell_NotifyIcon(NIM_ADD, @nid) then
begin
ShowMessage('Failed!');
Application.Terminate;
end;