[英]VB.NET: How to Take MenuIDs those Loaded From Resource Dll
我在我自己的資源 DLL 中有 mainMenu,我通過 API 方法將其作為 MainMenu 放入我的 Windows 中:(LoadMenu 和 SetMenu)
使用 WndProc 單擊后如何獲取 MenuID?
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = &H11F And m.LParam <> HMainMenu Then
If m.LParam <> 0 Then
MenuID = GetMenuItemID(m.LParam, 0)
Me.ListBox1.Items.Add("Selected.")
Else
Me.ListBox1.Items.Add("Clicked. " & MenuID.ToString)
End If
End If
MyBase.WndProc(m)
End Sub
此語句給出的 ID 為錯誤。
您好,我找到了一種通過 wParam 為每個菜單項選擇取不同值的方法:
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = &H11F And m.LParam <> HMainMenu Then
If m.LParam <> 0 Then
MenuID =(m.WParam.ToInt64 And 255)
Me.ListBox1.Items.Add("Selected.")
Else
Me.ListBox1.Items.Add("Clicked. " & MenuID.ToString)
End If
End If
MyBase.WndProc(m)
End Sub
因此,通過此更改可以在單擊 menuItem 后擁有一個 ID,但這不是資源 DLL 中的真實 ID。
我怎樣才能獲取點擊的菜單項的真實 ID?!!!
使用此代碼獲取 MenuItem ID:
MenuID = (m.WParam.ToInt64 And &HFFFF&)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.