0
如何確定鼠標是否指向(懸停在)最大化窗口按鈕,即使此窗口不是我的應用程序。 有沒有API?如何確定鼠標指向是否最大化光標下的窗口按鈕
如何確定鼠標是否指向(懸停在)最大化窗口按鈕,即使此窗口不是我的應用程序。 有沒有API?如何確定鼠標指向是否最大化光標下的窗口按鈕
您可以發送一個WM_NCHITTEST
到該窗口。返回值將對應於請求座標上的對象類型。
事情是這樣的:
bool IsMouseOverMaxBtn(HWND hWnd)
{
POINT pt;
VERIFY(GetCursorPos(&pt)); // get mouse position
int retVal = SendMessage(hWnd, WM_NCHITTEST, 0, MAKELONG(pt.x, pt.y));
return HTMAXBUTTON == retVal;
}
編輯:
您可以發送該消息的任何窗口(不一定屬於你的線程/進程)。由於沒有涉及指針(如字符串指針) - 沒有問題。
但是,您應該注意,將消息發送(而不是發佈)到屬於另一個線程的窗口是相當繁重的操作,在此期間線程被掛起。甚至可能發生線程掛起的情況,因爲服務該窗口的應用程序的線程掛起。
你可以考慮使用SendMessageTimeout
來保證你的線程不會掛起。
你在說什麼編程語言? – Vinit 2012-02-01 20:36:57
添加標籤,C#優選 – diimdeep 2012-02-01 20:40:59
[GetTitleBarInfo](http://msdn.microsoft.com/en-us/library/windows/desktop/ms633513(v = vs.85).aspx)看起來非常有希望。 – 2012-02-01 21:18:10