如何实现在任务栏中的图标右击时弹出菜单栏(100分)

  • 主题发起人 主题发起人 chen___ye
  • 开始时间 开始时间
C

chen___ye

Unregistered / Unconfirmed
GUEST, unregistred user!
这是许多程序中能实现的,但就是找不到此类文章
 
你用来显示图标的,使用的是代码还是控件?
 
有此类控件么?这里我用的是代码实现的<br>是Shell32.DLL动态链接库中中的函数Shell_NotifyIconA()
 
在捕获图标信息时,当Msg.LParam=WM_RBUTTONDOWN时就是右击时的信息。
 
你说得对,由于程序执行时使用了form.paint事件中的hide命令使窗体隐藏,<br>但具体如何实现的?敬请赐教
 
捕获的是图标信息,只要窗体存在就可以了,<br>也就是Shell_NotifyIcon函数中的定义的回调信息,<br>响应该信息就可以了。
 
那么怎样将PopupMenu控件与该图标联系?
 
哎,算了编程真累,一个月脑袋都昏的不行,女朋友都差点不理我了,<br>刚才我在程序员大本营中找到一个巨酷的控件,可以轻松的实现上述功能和其他意想不到的功能<br>哎,慢就慢吧,但软件进展加快了
 
可以先在Form1上放一个Popupmenu1,然后加入以下代码:<br>Procedure Form1.OnNotifyIcon(var Message:TMessage);<br>var MousePos:TPoint;<br>begin<br>&nbsp; if Message.LParam=WM_RBUTTONDOWN then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; GetCursorPos(MousePos);//当鼠标置于图标上时,获取鼠标位置<br>&nbsp; &nbsp; &nbsp; SetForegroundWindow(Application.Handle);//将程序调入前台<br>&nbsp; &nbsp; &nbsp; Application.ProcessMessage;<br>&nbsp; &nbsp; &nbsp; PopupMenu1.Popup(MousePos.x,MousePos.y);//在鼠标位置弹出菜单<br>&nbsp; &nbsp; end;<br>end;
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
946
DelphiTeacher的专栏
D
D
回复
0
查看
884
DelphiTeacher的专栏
D
D
回复
0
查看
961
DelphiTeacher的专栏
D
D
回复
0
查看
788
DelphiTeacher的专栏
D
后退
顶部