This document is archived and information here might be outdated.  Recommended version.

IToolbarControl.AddMenuItem Method (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > Controls > ESRI ArcGIS Controls > Interfaces > IT > IToolbarControl Interface > IToolbarControl.AddMenuItem Method
ArcGIS Developer Help

IToolbarControl.AddMenuItem Method

Adds a menu item to the ToolbarControl.

[Visual Basic .NET]
Public Function AddMenuItem ( _
    ByVal Menu As Object, _
    [ByVal index As Integer], _
    [ByVal beginGroup As Boolean], _
    [ByVal GroupSpacing As Integer] _
) As Integer
public int AddMenuItem (
    object Menu,
    int index,
    bool beginGroup,
    int GroupSpacing
HRESULT AddMenuItem(
  long index,
  VARIANT_BOOL beginGroup,
  long GroupSpacing
Menu [in]

Menu is a parameter of type VARIANT index [in, optional, defaultvalue()]
index is a parameter of type long beginGroup [in, optional, defaultvalue()]
beginGroup is a parameter of type bool GroupSpacing [in, optional, defaultvalue()]
GroupSpacing is a parameter of type long

Product Availability

Available with ArcGIS Engine.


Takes the specified menu and creates a new item that is added to the ToolbarControl and returns the index of the menu item added. This is really a shortcut to AddItem.

Specifiy the menu as either a IUID , ProgID, IMenuDef or IToolbarMenu.

If AddIMenuItem is passed an IMenuDef, the menu definition is is used to build a new ToolbarMenu, and the IToolbarMenu::CommandPool is set to the IToolbarControl::CommandPool. If AddMenuItem is passed an IToolbarMenu a new ToolbarItem is created and the IToolbarItem::Menu is set to the IToolbarMenu.

index determines the position on the ToolbarControl that the Item will be added to. By default this is -1 and represents the end of the ToolbarControl.

beginGroup determines whether a separator will appear before the Item. By default beginGroup is False.

GroupSpacing determines the width in pixels of the separator.

Errors Returned

1023 800a03ff: The specified index is out of range
1047 800a0417: Errors occurred adding the specified menu to the toolbar
1064 800a0428: A command or a toolbar cannot be added as a menu item.


AddItem checks to see if each command in the menu already exists in the CommandPool used by the ToolbarControl. If the command does not already exist, it is created and added to the CommandPool with a ICommandPool::UsageCount of 1. If the command already exists in the CommandPool its ICommandPool::UsageCount is incremented by 1. The ICommand::OnCreate method will be called the first time a command is added to the CommandPool.

Where possible always supply menus as either Uid objects or ProgID's. Only supply menu as IMenuDef objects when a IUid or ProgID does not exist, and the class is compiled as part of the same project using the ToolbarControl.

//Add menu by passing a UID
UID uID = new UIDClass();
uID.Value = "esriControls.ControlsMapViewMenu";

//Add menu by passing a ProgID
string progID  = "esriControls.ControlsMapViewMenu";
[Visual Basic .NET]
'Add menu by passing a UID
Dim pUid As New UIDClass
pUid.Value = "esriControls.ControlsMapViewMenu"

'Add menu by passing a ProgID
Dim sProgID As String
sProgID = "esriControls.ControlsMapViewMenu"

See Also

IToolbarControl Interface