2008-11-07 53 views

回答

1

你不行。获取系统托盘的窗口句柄并不难,GetClassName()返回标准TOOLBAR公共控件的类名“ToolbarWindow32”。注意一个64位操作系统有两个。然后你可以像TB_GETBUTTONINFO一样发送消息给它。首席挂断是你不知道按钮ID选择和返回的信息不包括按钮的位置。

哪个更好,按钮四处移动而不能锁定它们。

+0

谢谢。我怀疑这一点。 – AngryHacker 2008-11-08 20:50:21

4

其实你可以做到这一点,这里是代码,告诉你如何以及更多。

在NotifyIcon的任何鼠标事件中,只需查看Control.MousePosition,它就包含鼠标的(x,y)。使用这些(x,y)值可以完全将ContextMenu定位到窗体/控件所在窗体/控件的单击位置。

这两个很好的例子是在这里:

更多在这里:http://code.msdn.microsoft.com/TheNotifyIconExample

2

试错的长途跋涉之后,和我自己的通知图标定位器的开发,我开发了一个办法找到最好的位置图标,到目前为止好,直到我看到@zhwang SuperNotifyIcon这个惊人的项目。该项目有三种方法来查找通知图标,从不准确的(如我自己的开发)到在Windows 7 API中使用新的通知图标。这是一个明确的答案。