×
Namespaces

Variants
Actions
Revision as of 08:46, 15 June 2012 by hamishwillee (Talk | contribs)

Accessing the menu bar of Symbian C++ dialog-based applications returns a null pointer (Known Issue)

From Nokia Developer Wiki
Jump to: navigation, search

Accessing the menu bar of Symbian C++ dialog-based applications, for example to modify menu contents at runtime, returns a null pointer if no menu bar is defined in resources.

Article Metadata
Tested with
Devices(s): All (S60)
CompatibilityArticle
Keywords: MenuBar()
Created: User:Kbwiki (23 Nov 2009)
Last edited: hamishwillee (15 Jun 2012)

Description

CEikonEnv::Static()->AppUiFactory()->MenuBar() can be used in an S60 UI application to access the menu bar (a pointer to the CEikMenuBar instance), defined in the EIK_APP_INFO resource as follows:

 RESOURCE EIK_APP_INFO
{
menubar = r_myapp_menu_bar; /* a link to a MENU_BAR resource */
cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
}

A dialog-based application that omits the menubar definition will receive a null pointer when trying to access the menu bar using the above function.


Solution

Define a menu bar in the EIK_APP_INFO resource for a dialog-based application, then use the following buttons definition in the DIALOG resource:

 RESOURCE DIALOG r_myapp_main_dialog
{
buttons = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
...
}

As a result, the menu bar (Options menu) can be accessed with CEikonEnv::Static()->AppUiFactory()->MenuBar().

See also

See S60 Platform: Time Zone Localiser Example for an example of a dialog-based application.

81 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×