CMenu::InsertMenu

Syntax

BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, const char FAR* lpNewItem = NULL );

BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

Parameters

nPosition

Specifies the menu item before which the new menu item is to be inserted. The interpretation of nPosition depends on the setting of nFlags, as shown in the following list:

nFlags Interpretation of nPosition

MF_BYCOMMAND Specifies that the parameter gives the command ID of the existing menu item. This is the default if neither MF_BYCOMMAND nor MF_BYPOSITION is set.
MF_BYPOSITION Specifies that the parameter gives the position of the existing menu item (the first item is at position 0).
  If nPosition is -1, the new menu item is appended to the end of the menu.

nFlags

Specifies how nPosition is interpreted and information about the state of the new menu item when it is added to the menu. For a list of the flags that may be set, see the AppendMenu member function. To specify more than one value, use the bitwise OR operator to combine them with the MF_BYCOMMAND or MF_BYPOSITION flag.

nIDNewItem

Specifies either the command ID of the new menu item or, if nFlags is set to MF_POPUP, the menu handle (HMENU) of the pop-up menu. nIDNewItem is ignored (not needed) if nFlags is set to MF_SEPARATOR.

lpNewItem

Specifies the content of the new menu item. The interpretation of lpNewItem depends on the setting of nFlags as shown below:

nFlags Interpretation of lpNewItem

MF_OWNERDRAW Contains an application-supplied 32-bit value that the application can use to maintain additional data associated with the menu item. This 32-bit value is available to the application when it processes WM_MEASUREITEM and WM_DRAWITEM messages.
MF_STRING Contains a long pointer to a null-terminated string. This is the default interpretation.

The lpNewItem parameter is ignored (not needed) if nFlags is set to MF_SEPARATOR.

pBmp

Points to a CBitmap object that will be used as the menu item.

Remarks

Inserts a new menu item at the position specified by nPosition and moves other items down the menu. The application can specify the state of the menu item by setting values in nFlags.

Whenever a menu that resides in a window is changed (whether or not the window is displayed), the application should call CWnd::DrawMenuBar.

When nIDNewItem specifies a pop-up menu, it becomes part of the menu in which it is inserted. If that menu is destroyed, the inserted menu will also be destroyed. An inserted menu should be detached from a CMenu object to avoid conflict.

Return Value

TRUE if the function is successful; otherwise FALSE.

See Also

CMenu::AppendMenu, CWnd::DrawMenuBar, CMenu::SetMenuItemBitmaps, CMenu::Detach, CMenu::~CMenu, ::InsertMenu