EnableMenuItem, fonction (winuser.h)

Active, désactive ou grise l’élément de menu spécifié.

Syntaxe

BOOL EnableMenuItem(
  [in] HMENU hMenu,
  [in] UINT  uIDEnableItem,
  [in] UINT  uEnable
);

Paramètres

[in] hMenu

Type : HMENU

Handle dans le menu.

[in] uIDEnableItem

Type : UINT

Élément de menu à activer, désactiver ou griser, tel que déterminé par le paramètre uEnable . Ce paramètre spécifie un élément dans une barre de menus, un menu ou un sous-menu.

[in] uEnable

Type : UINT

Contrôle l’interprétation du paramètre uIDEnableItem et indique si l’élément de menu est activé, désactivé ou grisé. Ce paramètre doit être une combinaison des valeurs suivantes.

Valeur Signification
MF_BYCOMMAND
0x000000000L
Indique que uIDEnableItem donne l’identificateur de l’élément de menu. Si ni l’indicateur MF_BYCOMMAND ni MF_BYPOSITION n’est spécifié, l’indicateur MF_BYCOMMAND est l’indicateur par défaut.
MF_BYPOSITION
0x000000400L
Indique que uIDEnableItem donne la position relative de base zéro de l’élément de menu.
MF_DISABLED
0x00000002L
Indique que l’élément de menu est désactivé, mais pas grisé. Il ne peut donc pas être sélectionné.
MF_ENABLED
0x000000000L
Indique que l’élément de menu est activé et restauré à partir d’un état grisé afin qu’il puisse être sélectionné.
MF_GRAYED
0x00000001L
Indique que l’élément de menu est désactivé et grisé afin qu’il ne puisse pas être sélectionné.

Valeur retournée

Type : BOOL

La valeur de retour spécifie l’état précédent de l’élément de menu (il est MF_DISABLED, MF_ENABLED ou MF_GRAYED). Si l’élément de menu n’existe pas, la valeur renvoyée est -1.

Remarques

Une application doit utiliser l’indicateur MF_BYPOSITION pour spécifier la poignée de menu appropriée. Si la poignée de menu de la barre de menus est spécifiée, l’élément de menu de niveau supérieur (un élément de la barre de menus) est affecté. Pour définir l’état d’un élément dans un menu déroulant ou un sous-menu par position, une application doit spécifier un handle dans le menu déroulant ou sous-menu.

Lorsqu’une application spécifie l’indicateur MF_BYCOMMAND , le système vérifie tous les éléments qui ouvrent des sous-menus dans le menu identifié par le handle de menu spécifié. Par conséquent, à moins que des éléments de menu en double ne soient présents, il suffit de spécifier la poignée de menu dans la barre de menus.

Les fonctions InsertMenu, InsertMenuItem, LoadMenuIndirect, ModifyMenu et SetMenuItemInfo peuvent également définir l’état (activé, désactivé ou grisé) d’un élément de menu.

Lorsque vous modifiez un menu de fenêtre, la barre de menus n’est pas immédiatement mise à jour. Pour forcer la mise à jour, appelez DrawMenuBar.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-menu-l1-1-0 (introduit dans Windows 8)

Voir aussi

Conceptuel

DrawMenuBar

GetMenuItemID

InsertMenu

InsertMenuItem

LoadMenuIndirect

Menus

ModifyMenu

Référence

SetMenuItemInfo

WM_SYSCOMMAND