# wxMenuBar Class Reference
[Menus]

`#include <wx/menu.h>`

Inheritance diagram for wxMenuBar:
[legend]

## Detailed Description

A menu bar is a series of menus accessible from the top of a frame.

Remarks:
  To respond to a menu selection, provide a handler for EVT_MENU, in the frame that contains the menu bar.

If you have a toolbar which uses the same identifiers as your EVT_MENU entries, events from the toolbar will also be processed by your EVT_MENU event handlers.

Tip: under Windows, if you discover that menu shortcuts (for example, Alt-F to show the file menu) are not working, check any EVT_CHAR events you are handling in child windows. If you are not calling event.Skip() for events that you don't process in these event handlers, menu shortcuts may cease to work.

##

Library: wxCore

Category: Menus

See also:
  wxMenu, Events and Event Handling

## Public Member Functions
| wxMenuBar (long style=0)
| Construct an empty menu bar.
| wxMenuBar (size_t n, wxMenu *menus[], const wxString titles[], long style=0)
| Construct a menu bar from arrays of menus and titles.
virtual | ~wxMenuBar ()
| Destructor, destroying the menu bar and removing it from the parent frame (if any).
virtual bool | Append (wxMenu *menu, const wxString &title)
| Adds the item to the end of the menu bar.
void | Check (int id, bool check)
| Checks or unchecks a menu item.
void | Enable (int id, bool enable)
| Enables or disables (greys out) a menu item.
virtual void | EnableTop (size_t pos, bool enable)
| Enables or disables a whole menu.
virtual wxMenuItem * | FindItem (int id, wxMenu *menu=NULL) const
| Finds the menu item object associated with the given menu item identifier.
int | FindMenu (const wxString &title) const
| Returns the index of the menu with the given title or `wxNOT_FOUND` if no such menu exists in this menubar.
virtual int | FindMenuItem (const wxString &menuString, const wxString &itemString) const
| Finds the menu item id for a menu name/menu item string pair.
wxString | GetHelpString (int id) const
| Gets the help string associated with the menu item identifier.
wxString | GetLabel (int id) const
| Gets the label associated with a menu item.
wxString | GetLabelTop (size_t pos) const
| Returns the label of a top-level menu.
wxMenu * | GetMenu (size_t menuIndex) const
| Returns the menu at menuIndex (zero-based).
size_t | GetMenuCount () const
| Returns the number of menus in this menubar.
virtual wxString | GetMenuLabel (size_t pos) const
| Returns the label of a top-level menu.
virtual wxString | GetMenuLabelText (size_t pos) const
| Returns the label of a top-level menu.
virtual bool | Insert (size_t pos, wxMenu *menu, const wxString &title)
| Inserts the menu at the given position into the menu bar.
bool | IsChecked (int id) const
| Determines whether an item is checked.
bool | IsEnabled (int id) const
| Determines whether an item is enabled.
virtual void | Refresh (bool eraseBackground=true, const wxRect *rect=NULL)
| Redraw the menu bar.
virtual wxMenu * | Remove (size_t pos)
| Removes the menu from the menu bar and returns the menu object - the caller is responsible for deleting it.
virtual wxMenu * | Replace (size_t pos, wxMenu *menu, const wxString &title)
| Replaces the menu at the given position with another one.
void | SetHelpString (int id, const wxString &helpString)
| Sets the help string associated with a menu item.
void | SetLabel (int id, const wxString &label)
| Sets the label of a menu item.
void | SetLabelTop (size_t pos, const wxString &label)
| Sets the label of a top-level menu.
virtual void | SetMenuLabel (size_t pos, const wxString &label)
| Sets the label of a top-level menu.

List of all members.

## Constructor & Destructor Documentation

wxMenuBar::wxMenuBar | ( | long | style = `0` | ) |

Construct an empty menu bar.

Parameters:

  | style | If wxMB_DOCKABLE the menu bar can be detached (wxGTK only).

wxMenuBar::wxMenuBar | ( | size_t | n,
|  | wxMenu * | menus[],
|  | const wxString | titles[],
|  | long | style = `0` |
| ) |  |  |

Construct a menu bar from arrays of menus and titles.

Parameters:

  | n | The number of menus.
  | menus | An array of menus. Do not use this array again - it now belongs to the menu bar.
  | titles | An array of title strings. Deallocate this array after creating the menu bar.
  | style | If wxMB_DOCKABLE the menu bar can be detached (wxGTK only).

wxPerl Note: Not supported by wxPerl.

virtual wxMenuBar::~wxMenuBar | ( |  | ) | `[virtual]`

Destructor, destroying the menu bar and removing it from the parent frame (if any).

## Member Function Documentation

virtual bool wxMenuBar::Append | ( | wxMenu * | menu,
|  | const wxString & | title |
| ) |  |  | `[virtual]`

Adds the item to the end of the menu bar.

Parameters:

  | menu | The menu to add. Do not deallocate this menu after calling Append().
  | title | The title of the menu, must be non-empty.

Returns:
  true on success, false if an error occurred.

See also:
  Insert()

void wxMenuBar::Check | ( | int | id,
|  | bool | check |
| ) |  |  |

Checks or unchecks a menu item.

Parameters:

  | id | The menu item identifier.
  | check | If true, checks the menu item, otherwise the item is unchecked.

Remarks:
  Only use this when the menu bar has been associated with a frame; otherwise, use the wxMenu equivalent call.

void wxMenuBar::Enable | ( | int | id,
|  | bool | enable |
| ) |  |  |

Enables or disables (greys out) a menu item.

Parameters:

  | id | The menu item identifier.
  | enable | true to enable the item, false to disable it.

Remarks:
  Only use this when the menu bar has been associated with a frame; otherwise, use the wxMenu equivalent call.

virtual void wxMenuBar::EnableTop | ( | size_t | pos,
|  | bool | enable |
| ) |  |  | `[virtual]`

Enables or disables a whole menu.

Parameters:

  | pos | The position of the menu, starting from zero.
  | enable | true to enable the menu, false to disable it.

Remarks:
  Only use this when the menu bar has been associated with a frame.

virtual wxMenuItem* wxMenuBar::FindItem | ( | int | id,
|  | wxMenu * | menu = `NULL` |
| ) |  |  | const`[virtual]`

Finds the menu item object associated with the given menu item identifier.

Parameters:

  | id | Menu item identifier.
  | menu | If not NULL, menu will get set to the associated menu.

Returns:
  The found menu item object, or NULL if one was not found.

wxPerl Note: In wxPerl this method takes just the id parameter; in scalar context it returns the associated `Wx::MenuItem`, in list context it returns a 2-element list (item, submenu).

int wxMenuBar::FindMenu | ( | const wxString & | title | ) | const

Returns the index of the menu with the given title or `wxNOT_FOUND` if no such menu exists in this menubar.

The title parameter may specify either the menu title (with accelerator characters, i.e. `"&File"`) or just the menu label (`"File"`) indifferently.

virtual int wxMenuBar::FindMenuItem | ( | const wxString & | menuString,
|  | const wxString & | itemString |
| ) |  |  | const`[virtual]`

Finds the menu item id for a menu name/menu item string pair.

Parameters:

  | menuString | Menu title to find.
  | itemString | Item to find.

Returns:
  The menu item identifier, or wxNOT_FOUND if none was found.

Remarks:
  Any special menu codes are stripped out of source and target strings before matching.

wxString wxMenuBar::GetHelpString | ( | int | id | ) | const

Gets the help string associated with the menu item identifier.

Parameters:

  | id | The menu item identifier.

Returns:
  The help string, or the empty string if there was no help string or the menu item was not found.

See also:
  SetHelpString()

wxString wxMenuBar::GetLabel | ( | int | id | ) | const

Gets the label associated with a menu item.

Parameters:

  | id | The menu item identifier.

Returns:
  The menu item label, or the empty string if the item was not found.

Remarks:
  Use only after the menubar has been associated with a frame.

wxString wxMenuBar::GetLabelTop | ( | size_t | pos | ) | const

Returns the label of a top-level menu.

Note that the returned string does not include the accelerator characters which could have been specified in the menu title string during its construction.

Parameters:

  | pos | Position of the menu on the menu bar, starting from zero.

Returns:
  The menu label, or the empty string if the menu was not found.

Remarks:
  Use only after the menubar has been associated with a frame.

Deprecated:
  This function is deprecated in favour of GetMenuLabel() and GetMenuLabelText().

See also:
  SetLabelTop()

wxMenu* wxMenuBar::GetMenu | ( | size_t | menuIndex | ) | const

Returns the menu at menuIndex (zero-based).

size_t wxMenuBar::GetMenuCount | ( |  | ) | const

Returns the number of menus in this menubar.

virtual wxString wxMenuBar::GetMenuLabel | ( | size_t | pos | ) | const`[virtual]`

Returns the label of a top-level menu.

Note that the returned string includes the accelerator characters that have been specified in the menu title string during its construction.

Parameters:

  | pos | Position of the menu on the menu bar, starting from zero.

Returns:
  The menu label, or the empty string if the menu was not found.

Remarks:
  Use only after the menubar has been associated with a frame.

See also:
  GetMenuLabelText(), SetMenuLabel()

virtual wxString wxMenuBar::GetMenuLabelText | ( | size_t | pos | ) | const`[virtual]`

Returns the label of a top-level menu.

Note that the returned string does not include any accelerator characters that may have been specified in the menu title string during its construction.

Parameters:

  | pos | Position of the menu on the menu bar, starting from zero.

Returns:
  The menu label, or the empty string if the menu was not found.

Remarks:
  Use only after the menubar has been associated with a frame.

See also:
  GetMenuLabel(), SetMenuLabel()

virtual bool wxMenuBar::Insert | ( | size_t | pos,
|  | wxMenu * | menu,
|  | const wxString & | title |
| ) |  |  | `[virtual]`

Inserts the menu at the given position into the menu bar.

Inserting menu at position 0 will insert it in the very beginning of it, inserting at position GetMenuCount() is the same as calling Append().

Parameters:

  | pos | The position of the new menu in the menu bar
  | menu | The menu to add. wxMenuBar owns the menu and will free it.
  | title | The title of the menu.

Returns:
  true on success, false if an error occurred.

See also:
  Append()

bool wxMenuBar::IsChecked | ( | int | id | ) | const

Determines whether an item is checked.

Parameters:

  | id | The menu item identifier.

Returns:
  true if the item was found and is checked, false otherwise.

bool wxMenuBar::IsEnabled | ( | int | id | ) | const

Determines whether an item is enabled.

Parameters:

  | id | The menu item identifier.

Returns:
  true if the item was found and is enabled, false otherwise.

virtual void wxMenuBar::Refresh | ( | bool | eraseBackground = `true`,
|  | const wxRect * | rect = `NULL` |
| ) |  |  | `[virtual]`

Redraw the menu bar.

Reimplemented from wxWindow.

virtual wxMenu* wxMenuBar::Remove | ( | size_t | pos | ) | `[virtual]`

Removes the menu from the menu bar and returns the menu object - the caller is responsible for deleting it.

This function may be used together with Insert() to change the menubar dynamically.

See also:
  Replace()

virtual wxMenu* wxMenuBar::Replace | ( | size_t | pos,
|  | wxMenu * | menu,
|  | const wxString & | title |
| ) |  |  | `[virtual]`

Replaces the menu at the given position with another one.

Parameters:

  | pos | The position of the new menu in the menu bar
  | menu | The menu to add.
  | title | The title of the menu.

Returns:
  The menu which was previously at position pos. The caller is responsible for deleting it.

See also:
  Insert(), Remove()

void wxMenuBar::SetHelpString | ( | int | id,
|  | const wxString & | helpString |
| ) |  |  |

Sets the help string associated with a menu item.

Parameters:

  | id | Menu item identifier.
  | helpString | Help string to associate with the menu item.

See also:
  GetHelpString()

void wxMenuBar::SetLabel | ( | int | id,
|  | const wxString & | label |
| ) |  |  |

Sets the label of a menu item.

Parameters:

  | id | Menu item identifier.
  | label | Menu item label.

Remarks:
  Use only after the menubar has been associated with a frame.

See also:
  GetLabel()

void wxMenuBar::SetLabelTop | ( | size_t | pos,
|  | const wxString & | label |
| ) |  |  |

Sets the label of a top-level menu.

Parameters:

  | pos | The position of a menu on the menu bar, starting from zero.
  | label | The menu label.

Remarks:
  Use only after the menubar has been associated with a frame.

Deprecated:
  This function has been deprecated in favour of SetMenuLabel().

See also:
  GetLabelTop()

virtual void wxMenuBar::SetMenuLabel | ( | size_t | pos,
|  | const wxString & | label |
| ) |  |  | `[virtual]`

Sets the label of a top-level menu.

Parameters:

  | pos | The position of a menu on the menu bar, starting from zero.
  | label | The menu label.

Remarks:
  Use only after the menubar has been associated with a frame.

|  | [ top ]