如何鼠标右击托盘图标(TrayIcon)使它弹出菜单,如金山词霸.(50分)

  • 主题发起人 主题发起人 microbit
  • 开始时间 开始时间
先添加TryIcon:
Shell_NotifyIcon,
添加时NotifyIconData结构中要写Wnd:=Self.Handle,CallbackMessage:=WM_User
然后在窗体中截消息Wm_User
处理Wm_User:
GetMousePos(PT);
PopMenu.Popup(PT);
但这样有个问题:弹出的菜单不会自动关掉,请指教
 
兄弟,这上面有太多这种问题,你自己搜索一下,有不下100个.
 
我也有这个问题,弹出的菜单如果不选中不会消失,
oicq 的右键菜单就没这问题,左键的就有。
我想可能是 popupmenu的父亲决定的。
 
to puzzle:
左键的也没有,我说的消失是选了别的窗口后消失
 
用这种方法确实有这个问题,
我另外编了个程序,没用Forms等大单元,只是显示了通知栏图标,
但没有上面的问题,我找不出其中的不同。
 
delphi5中对Shell_Notiryicon好像不支持,所以要实现这个功能,可以在delphi4中做一个
构件,然后在delphi5中调用即可.
 
现在谁还在写这方面的代码,都使用控件了,控件都支持菜单(至少我使用的控件支持),
如果要我可以给你一个!(我以前也曾经问过类似的问题,但觉得控件比较好用)
xxz007@yeah.net
请注明什么控件
 
其实问题简单极了。我在前面的论坛找到的。

他们推荐了个方法,
发空消息
popupmenu1.popup;
sendmessage(0,0,0,0);

但我发现还是那个问题。

另外一个办法就是
self.BrignToFront; //关键的一句
popupmenu1.popup;

这个办法就行了!我现在再用。
 
rxlib里的trayicon+coolmenu作出来,效果很好
 
多人接受答案了。
 
后退
顶部