2013-12-18 50 views
1

我知道系統菜單的選項,那就是alt +空格。這不是很好,它涉及通過GetNextWindow循環所有打開的窗口。但我想以更一般的方式提問。這是有任何菜單句柄,不一定是系統菜單(這很容易找到任何窗口)是否有可能到達其父窗口?有處理菜單(HMENU)是否有可能找到它的父窗口(HWND)?

+1

您循環瀏覽窗口並調用GetMenu()。有點奇怪有一個HMENU,並沒有任何想法它來自btw。 –

+0

我有一個功能可以對我不擁有的菜單進行操作,我認爲它可能會將它看作是hwnd而不會傳遞另一個參數。 – rsk82

+3

不要對不屬於你自己的菜單做事。這只是粗魯。 –

回答

2

不可以。菜單可以跨窗口共享,因此菜單和窗口之間沒有唯一的映射。

4

在hmenu從現有菜單窗口(class#32768): 中獲取的特定情況下,可以通過GetGUIThreadInfo(GetWindowThreadProcessId)使用GUITHREADINFO.hwndMenuOwner。 「On the fly」意思是:在WindowFromPoint之後,通過SendMessageTimeout(MN_GETHMENU)或通過GetMenuBarInfo(OBJID_CLIENT)。

相關問題