簡體   English   中英

VB.NET:如何獲取從資源 Dll 加載的 MenuID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM