INF: Initializing Menus Dynamically

ID Number: Q75630

3.00

WINDOWS

Summary:

Many commercial applications developed for Windows allow the user to

customize the menus of the application. This ability introduces some

complexity when the application must disable particular menu items at

certain times. This article provides a method to perform this task.

More Information:

Windows sends a WM_INITMENUPOPUP message just before a pop-up menu is

displayed. The parameters to this message provide the handle to the

menu and the index of the pop-up menu on the main menu.

To process this message properly, each menu item must have a unique

identifier. When the application starts up, it creates a mapping array

that lists the items on each menu. When the WM_INITMENUPOPUP message

is received, the application checks the conditions necessary for each

menu item to be disabled or checked and modifies the menu

appropriately.

The application must maintain the mapping array when the user modifies

the menus in any way.