GetMenuState, fonction (winuser.h)
Récupère les indicateurs de menu associés à l’élément de menu spécifié. Si l’élément de menu ouvre un sous-menu, cette fonction retourne également le nombre d’éléments dans le sous-menu.
Syntaxe
UINT GetMenuState(
[in] HMENU hMenu,
[in] UINT uId,
[in] UINT uFlags
);
Paramètres
[in] hMenu
Type : HMENU
Handle du menu qui contient l’élément de menu dont les indicateurs doivent être récupérés.
[in] uId
Type : UINT
Élément de menu pour lequel les indicateurs de menu doivent être récupérés, comme déterminé par le paramètre uFlags .
[in] uFlags
Type : UINT
Indique comment le paramètre uId est interprété. Ce paramètre peut prendre les valeurs suivantes.
Valeur retournée
Type : UINT
Si l’élément spécifié n’existe pas, la valeur de retour est -1.
Si l’élément de menu ouvre un sous-menu, l’octet d’ordre inférieur de la valeur de retour contient les indicateurs de menu associés à l’élément, et l’octet d’ordre supérieur contient le nombre d’éléments dans le sous-menu ouvert par l’élément.
Sinon, la valeur de retour est un masque (OR au niveau du bit) des indicateurs de menu. Voici les indicateurs de menu associés à l’élément de menu.
Code/valeur de retour | Description |
---|---|
|
Une marque case activée est placée en regard de l’élément (pour les menus déroulants, les sous-menus et les menus contextuels uniquement). |
|
L’élément est désactivé. |
|
L’élément est désactivé et grisé. |
|
L’élément est mis en surbrillance. |
|
Il s’agit de l’indicateur MF_MENUBREAK , à l’exception des menus déroulants, des sous-menus et des menus contextuels, où la nouvelle colonne est séparée de l’ancienne colonne par une ligne verticale. |
|
L’élément est placé sur une nouvelle ligne (pour les barres de menus) ou dans une nouvelle colonne (pour les menus déroulants, les sous-menus et les menus contextuels) sans séparer les colonnes. |
|
L’élément est dessiné par le propriétaire. |
|
L’élément de menu est un sous-menu. |
|
Il existe une ligne de séparation horizontale (pour les menus déroulants, les sous-menus et les menus contextuels uniquement). |
Remarques
Il est possible de tester un élément pour une valeur d’indicateur de MF_ENABLED, MF_STRING, MF_UNCHECKED ou MF_UNHILITE. Toutefois, étant donné que ces valeurs correspondent à zéro, vous devez utiliser une expression pour les tester.
Indicateur | Expression à tester pour l’indicateur |
---|---|
MF_ENABLED | ! (Flag&(MF_DISABLED | MF_GRAYED)) |
MF_STRING | ! (Flag&(MF_BITMAP | MF_OWNERDRAW)) |
MF_UNCHECKED | ! (Flag&MF_CHECKED) |
MF_UNHILITE | ! (Flag&HILITE) |
Exemples
Pour obtenir un exemple, consultez Simulation de cases à cocher dans un menu.
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-2 (introduit dans Windows 10, version 10.0.10240) |
Voir aussi
Conceptuel
Référence