我解釋了有關鼠標掛鉤的問題,並提到可能很難找到您的確切圖標。我確實發現了以下關於如何找到托盤圖標的文章。
CTrayIconPosition - where is my tray icon?通過Irek Zielinski。我認爲如果你試圖瞭解它是如何工作的,你可以把它轉過來並用它來檢查你的鼠標當前是否位於你的圖標之上。
但你應該首先檢查鼠標是否在托盤區域。我發現了一些我的舊代碼(2005),它找到了正確的區域。
var
hwndTaskBar, hwndTrayWnd, hwndTrayToolBar : HWND;
rTrayToolBar : tRect;
begin
hwndTaskBar := FindWindowEx (0, 0, 'Shell_TrayWnd', nil);
hwndTrayWnd := FindWindowEx (hwndTaskBar , 0, 'TrayNotifyWnd',nil);
hwndTrayToolBar := FindWindowEx(hwndTrayWnd, 0, 'ToolbarWindow32',nil);
Windows.GetClientRect(hwndTrayToolBar, rTrayToolBar);
end
使用這段代碼和上述文章的知識,我認爲你可以實現你想要的功能。
這是一個有趣的方法,但恐怕我將不得不經常監視圖標的位置(出現另一個圖標,它被隱藏等)並重新定位透明窗口,這有點具有挑戰性。 – chitza 2008-09-19 20:24:55