1
我想在鼠標懸停的時候找到其他控件的句柄,但它只發現上面的控件(使用WindowFromPoint
,ChildWindowFromPoint
等不起作用)。如何在鼠標點找到mfc控件的句柄,但處於其他控制之下?
有什麼建議嗎?
我想在鼠標懸停的時候找到其他控件的句柄,但它只發現上面的控件(使用WindowFromPoint
,ChildWindowFromPoint
等不起作用)。如何在鼠標點找到mfc控件的句柄,但處於其他控制之下?
有什麼建議嗎?
您可以使用GetNextWindow
Win32 API調用來檢索Z-Order下一個窗口,該窗口位於此窗口之下。
算法可能是這樣的:
HWND hwnd = ChildWindowFromPoint(hwndParent, point);
hwnd
獲取初始窗口搶手的窗口,然後停止hwnd = GetNextWindow(hwnd, GW_HWNDNEXT);
hwnd
包含point
然後去2另一種方法 - 只需枚舉對話框或視圖上的所有控件,將它們的矩形和句柄存儲在某個容器中,然後手動進行點檢查。
控件是否嵌套,即控件之間是否存在父子關係,還是隻是重疊且不相關? – Tony
閱讀[通過迷宮的MFC消息和命令路由](http://www.microsoft.com/msj/0795/dilascia/dilascia.aspx),它可能會幫助您瞭解郵件路由的位置。或者發佈一些代碼來顯示問題。 – Tony