2013-10-18 174 views
2

我在Delphi XE2中使用TTrayicon,并且想知道是否有任何方法来控制右键单击事件。 我尝试了点击事件,但我不能TrayIcon右键单击事件

+3

'TTrayIcon'的代码让我很难过。所有那些愚蠢的调用'GetCursorPos'。它看起来好像VCL的大部分是由不懂输入消息的人编写的。 –

回答

4

您可以将事件处理程序OnMouseUp。使用按钮参数来找出哪个按钮被按下。

+0

OnMouseDown和OnMouseUp都可以使用,但你是对的。如果您使用OnMouseUp,托盘图标的行为与标准Windows托盘图标(音量,网络等)完全相同。我将立即编辑答案。 –

+1

这是问题的正确答案。但是,如果你想显示一个弹出菜单,那么多态性是准确的。如果您只是在响应右键单击时显示弹出式菜单,您可能会做错事。请注意,即使用户尝试使用键盘右键点击,OnMouseUp事件也会触发。这是在TTrayIcon所代表的shell API的原始设计中的一个限制。 –

+0

我测试过了,都完美无缺。谢谢 – elcharlie

1

TPopupMenu与TrayIcon关联。

http://i.stack.imgur.com/nkEvb.png

+0

你怎么知道这个问题是关于弹出菜单?在这个问题中没有单独提及它。 @Polymorphin,只是一个提示,如果你用这种方式链接图像'[![enter image description here] [1]] [1]'它会使图像*“点击”* ;-) – TLama

+2

感谢您的提示。我只是觉得他想知道如何点击一个托盘图标关联一个事件,而popupmenu是最简单的方法。 – Hidden