Guides & Tutorials (beta)

Add MDI Menus customization

by Kirk Stowell Visual C++ Created on 11/16/2007  |  Updated on 07/30/2024 0/5 ( 0 votes )

Command Bars has three ways for developers to add MDI Menu customization menus. This tutorial assumes that you have already created an application with customization. Click here for more information about this.

Standard MDI Menu customization:

This method uses the MFC architecture for MDI menus, you just need to add standard customization without additional changes. As in a standard MFC application, you must add templates for each MDI document type

Advantages:

  • Ease to add customization
  • Ease to modify standard MFC application

Disadvantages:

  • All disadvantages belong to the user-side. Users must manually customize all templates in the application. For example if the users want to see ‘View’ popup before ’File‘ they must customize each doc template and Main Frame template.

Notes:

  • Be sure that when you create a menu you use a Main Frame identifier
    CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(
        _T("Menu Bar"), IDR_MAINFRAME);
    
  • See the CustomizeDlg sample for this customization type
  • xtpFlagUseMDIMenus flag no longer used

Static MDI Menu customization:

All you need is to add the xtpFlagIgnoreSetMenuMessage flag to the Menu Bar:

 CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(
     _T("Menu Bar"), IDR_CUSTOMTYPE);
 pMenuBar->SetFlags(xtpFlagIgnoreSetMenuMessage);

and all other menu templates will be ignored.

Advantages:

  • Ease to add customization
  • Ease to modify standard MFC application
  • Easy for users to customize the application, because they need customize only a single menu used for all templates

Disadvantages

  • Static menus not very flexible for developers to apply some document types

Notes:

  • See CustomThemes sample for this customization type

Custom MDI menu customization:

This is the most difficult for developers, but the most friendly type for user customization.

Developers must create only one Menu template with all popup items needed to be used in the application, and assign programmatically what popup items are shown in each template.

For example developers must add the ‘Window’ item but assign it to show only when some documents are visible.

For this customization type add ExcludeDocTemplate and AssignDocTemplate methods of CXTPControl class.

Advantages:

  • Easy for users to customize the application, because they need customize only a single menu to be used for all templates

Disadvantages

  • Developers must manually assign the popup items that are visible when the document template is active

Notes:

  • Visual Studio 6.0 and .NET used such customization type. (If you customize the ‘File’ item and open some image to edit, a new ‘Image’ popup appears but the changes in the File section stay the same.)
  • See MDIMenus sample for this customization type

See Also: Add customization to menus and toolbars

User Comments

No comments yet, sign in to comment.

Secure Transactions

Online transactions are secure and protected.


Ssl seal 1
This site is protected by Trustwave's Trusted Commerce program
CompliAssure Secured

Money Back Guarantee

If you are not 100% happy with your purchase within 30 days, you can return it for any reason. Your satisfaction is our priority!


Satisfication Guarantee

Contact sales@codejock.com for more details.