我有一个出现在系统托盘中的NotifyIcon控件。如何在屏幕上找到图标的位置(x,y)?
由于
答案 0 :(得分:4)
实际上你可以这样做,这里的代码可以向你展示如何以及更多。
在NotifyIcon的任何鼠标事件中,只需查看Control.MousePosition,它包含鼠标的(x,y)。可以使用这些(x,y)值将表单/控件上的ContextMenu精确定位到表单/控件的位置。
这两个方面的一个很好的例子是:
答案 1 :(得分:2)
经过漫长的试验和错误之旅,以及我自己的通知图标定位器的开发,我开发了一种找到最佳位置图标的方法,到目前为止一直很好,直到我看到@zhwang {{3 }}。该项目有三种方法可以找到通知图标,范围从不准确(如我自己的开发)到在Windows 7 API中使用new。这是明确的答案。
答案 2 :(得分:1)
你做不到。获取系统托盘的窗口句柄并不困难,GetClassName()返回“ToolbarWindow32”,即标准TOOLBAR公共控件的类名。请注意,64位操作系统有两个。然后你可以像TB_GETBUTTONINFO一样向它发送消息。首席警告是您不知道选择哪个按钮ID,并且返回的信息不包括按钮位置。
哪个更好,按钮移动而不能锁定它们。