CMenu::EnableMenuItem
Active, les désactive, ou estompe un élément de menu.
UINT EnableMenuItem(
UINT nIDEnableItem,
UINT nEnable
);
Paramètres
nIDEnableItem
Spécifie l'élément de menu à activer, tel que déterminé par nEnable. Ce paramètre peut spécifier des éléments de menu contextuel ainsi que les éléments de menu standard.nEnable
Spécifie l'action à effectuer. Ce peut être une combinaison de MF_DISABLED, d' MF_ENABLED, ou de MF_GRAYED, avec MF_BYCOMMAND ou MF_BYPOSITION. Ces valeurs peuvent être combinées à l'aide de l'opérateur de bits OR. Ces valeurs ont les significations suivantes :MF_BYCOMMAND spécifie que le paramètre permet l'ID de commande de l'élément de menu existant. Valeur par défaut.
MF_BYPOSITION spécifie que le paramètre permet la position de l'élément de menu existant. Le premier élément est à la position 0.
MF_DISABLED désactive l'élément de menu afin qu'il ne puisse pas être sélectionné mais ne l'estompe pas.
MF_ENABLED active l'élément de menu afin qu'il puisse être sélectionnée et les restaure il de son état grisé.
MF_GRAYED désactive l'élément de menu afin qu'il ne puisse pas être sélectionné et l'estompe.
Valeur de retour
État précédent (MF_DISABLED, MF_ENABLED, ou MF_GRAYED) ou à 1 si non valide.
Notes
Les fonctions membres de CreateMenu, d' InsertMenu, de ModifyMenu, et de LoadMenuIndirect peuvent également définir l'état (activé, désactivé, ou grisé) d'un élément de menu.
À l'aide de la valeur de MF_BYPOSITION requiert une application d'utiliser CMenucorrect. Si CMenu de la barre de menus est utilisé, un élément de menu de niveau supérieur (un élément dans la barre de menus) est affecté. Pour définir l'état d'un élément d'un menu contextuel ou du menu contextuel imbriqué par position, une application doit spécifier CMenu le menu contextuel.
Lorsqu'une application spécifie l'indicateur de MF_BYCOMMAND , les fenêtres contrôle tous les éléments de menu contextuel qui sont subordonnés à CMenu; par conséquent, à moins que les éléments de menu en double soient présents, à l'aide de CMenu de la barre de menus est suffisant.
Exemple
// The code fragment below shows how to disable (and gray out) the
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are
// needed, and CMenu::EnableMenuItem() will work as expected.
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
Configuration requise
Header: afxwin.h