2008-11-07 56 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中使用新的通知圖標。這是一個明確的答案。