Contents Up Previous Next

wxMenuBar

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

Derived from

wxWindow
wxEvtHandler
wxObject

Include files

<wx/menu.h>

Event handling

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.

See also

wxMenu, Event handling overview

Members

wxMenuBar::wxMenuBar
wxMenuBar::~wxMenuBar
wxMenuBar::Append
wxMenuBar::Check
wxMenuBar::Enable
wxMenuBar::EnableTop
wxMenuBar::FindMenu
wxMenuBar::FindMenuItem
wxMenuBar::FindItem
wxMenuBar::GetHelpString
wxMenuBar::GetLabel
wxMenuBar::GetLabelTop
wxMenuBar::GetMenu
wxMenuBar::GetMenuCount
wxMenuBar::GetMenuLabel
wxMenuBar::GetMenuLabelText
wxMenuBar::Insert
wxMenuBar::IsChecked
wxMenuBar::IsEnabled
wxMenuBar::Refresh
wxMenuBar::Remove
wxMenuBar::Replace
wxMenuBar::SetHelpString
wxMenuBar::SetLabel
wxMenuBar::SetLabelTop
wxMenuBar::SetMenuLabel


wxMenuBar::wxMenuBar

wxMenuBar(long style = 0)

Default constructor.

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

Construct a menu bar from arrays of menus and titles.

Parameters

n

menus

titles

style

wxPython note: Only the default constructor is supported in wxPython. Use wxMenuBar::Append instead.

wxPerl note: wxPerl only supports the first constructor: use wxMenuBar::Append instead.


wxMenuBar::~wxMenuBar

void ~wxMenuBar()

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


wxMenuBar::Append

bool Append(wxMenu *menu, const wxString& title)

Adds the item to the end of the menu bar.

Parameters

menu

title

Return value

true on success, false if an error occurred.

See also

wxMenuBar::Insert


wxMenuBar::Check

void Check(int id, const bool check)

Checks or unchecks a menu item.

Parameters

id

check

Remarks

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


wxMenuBar::Enable

void Enable(int id, const bool enable)

Enables or disables (greys out) a menu item.

Parameters

id

enable

Remarks

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


wxMenuBar::EnableTop

void EnableTop(int pos, const bool enable)

Enables or disables a whole menu.

Parameters

pos

enable

Remarks

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


wxMenuBar::FindMenu

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. The title parameter may specify either the menu title (with accelerator characters, i.e. "&File") or just the menu label ("File") indifferently.


wxMenuBar::FindMenuItem

int FindMenuItem(const wxString& menuString, const wxString& itemString) const

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

Parameters

menuString

itemString

Return value

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.


wxMenuBar::FindItem

wxMenuItem * FindItem(int id, wxMenu **menu = NULL) const

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

Parameters

id

menu

Return value

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


wxMenuBar::GetHelpString

wxString GetHelpString(int id) const

Gets the help string associated with the menu item identifier.

Parameters

id

Return value

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

See also

wxMenuBar::SetHelpString


wxMenuBar::GetLabel

wxString GetLabel(int id) const

Gets the label associated with a menu item.

Parameters

id

Return value

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.


wxMenuBar::GetLabelTop

wxString GetLabelTop(int 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

Return value

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.

This function is deprecated in favour of GetMenuLabel and GetMenuLabelText.

See also

wxMenuBar::SetLabelTop


wxMenuBar::GetMenu

wxMenu* GetMenu(int menuIndex) const

Returns the menu at menuIndex (zero-based).


wxMenuBar::GetMenuCount

int GetMenuCount() const

Returns the number of menus in this menubar.


wxMenuBar::GetMenuLabel

wxString GetMenuLabel(int pos) const

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

Return value

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

wxMenuBar::GetMenuLabelText, wxMenuBar::SetMenuLabel


wxMenuBar::GetMenuLabelText

wxString GetMenuLabelText(int pos) const

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

Return value

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

wxMenuBar::GetMenuLabel, wxMenuBar::SetMenuLabel


wxMenuBar::Insert

bool Insert(size_t pos, wxMenu *menu, const wxString& title)

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

menu

title

Return value

true on success, false if an error occurred.

See also

wxMenuBar::Append


wxMenuBar::IsChecked

bool IsChecked(int id) const

Determines whether an item is checked.

Parameters

id

Return value

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


wxMenuBar::IsEnabled

bool IsEnabled(int id) const

Determines whether an item is enabled.

Parameters

id

Return value

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


wxMenuBar::Refresh

void Refresh()

Redraw the menu bar


wxMenuBar::Remove

wxMenu * Remove(size_t pos)

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 wxMenuBar::Insert to change the menubar dynamically.

See also

wxMenuBar::Replace


wxMenuBar::Replace

wxMenu * Replace(size_t pos, wxMenu *menu, const wxString& title)

Replaces the menu at the given position with another one.

Parameters

pos

menu

title

Return value

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

See also

wxMenuBar::Insert, wxMenuBar::Remove


wxMenuBar::SetHelpString

void SetHelpString(int id, const wxString& helpString)

Sets the help string associated with a menu item.

Parameters

id

helpString

See also

wxMenuBar::GetHelpString


wxMenuBar::SetLabel

void SetLabel(int id, const wxString& label)

Sets the label of a menu item.

Parameters

id

label

Remarks

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

See also

wxMenuBar::GetLabel


wxMenuBar::SetLabelTop

void SetLabelTop(int pos, const wxString& label)

Sets the label of a top-level menu.

Parameters

pos

label

Remarks

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

This function has been deprecated in favour of SetMenuLabel.

See also

wxMenuBar::GetLabelTop


wxMenuBar::SetMenuLabel

void SetMenuLabel(int pos, const wxString& label)

Sets the label of a top-level menu.

Parameters

pos

label

Remarks

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

See also

wxMenuBar::GetMenuLabel, wxMenuBar::GetMenuLabelText