GetMenu (user32)
Last changed: NetMage-165.214.11.83

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern IntPtr GetMenu(IntPtr hWnd);

VB Signature:

<DllImport("user32.dll")> _
Public Shared Function GetMenu(ByVal hWnd As IntPtr) As IntPtr
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code (C#):

//this.Handle points to the Form (window application project)
int Menu2 = GetMenu(this.Handle.ToInt32());
AppendMenu(Menu2,0xA00,0,null);   // makes a separator
AppendMenu(Menu2,0,777,"Pinvoke Rules!");

Sample Code (VB)

Dim hwndMain as IntPtr = FindWindowEx(intptr.Zero,intptr.Zero,vbNullString,"My Window Title") 'Get the Window Handle
Dim hwndMenu As IntPtr = GetMenu(hwndMain) 'Get the MenuHandle
Dim hwndSubmenu as intptr = GetSubMenu(hwndMenu,1) 'Get the SubMenuHandle to the visible MenuItem, in this case the second one (counting from zero)
Dim intMID as Integer = GetMenuitemID(hwndSubmenu,2)) 'Get the MenuItemID of the third SubMenu under the previous Handle (counting from zero)
Sendmessage(hwndxt, WM_COMMAND, intmid,  0) 'Click the MenuItem!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
GetMenu on MSDN