Désactiver option menu via API
Bonjour,
je suis plus un habitué du forum windev, mais je viens vers vous car je n'arrive pas à me dépatouiller de l'API EnableMenuItem.
Je cherche à piloter une appli qui tourne sous win2000. Cette partie fonctionne. De plus, on me demande de bloquer certaines fonctions : La croix de fermeture, et les options "Fermer" et "Quitter".
J'ai bien réussi à désactiver la croix, mais je n'arrive pas à griser (ou désactiver) les items du sous-menu "Fichier".
Voici le code que j'utilise (en wlangage de windev) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| hWnd est un entier sans signe = SysFenHandle("Calculatrice") // handle de la fenêtre
nMenu est un entier sans signe
nSousMenu est un entier sans signe
nIdItemSousMenu est un entier sans signe
nMenu = API("USER32","GetMenu",hWnd) // handle du menu
nSousMenu = API("USER32","GetSubMenu",nMenu,0) // 1° sous menu
nIdItemSousMenu = API("USER32","GetMenuItemID",nSousMenu,1)// 2° item du sous menu = fermer
RetourFonction=API("USER32","EnableMenuItem",nSousMenu ,2,0x0401) // 4 = MF_ByPosition / 1 = MF_Grayed
ou
RetourFonction=API("USER32","EnableMenuItem",nSousMenu ,nIdItemSousMenu ,0x0001) // 0 = MF_BYCOMMAND |
Dans les 2 cas, pas d'erreur mais aucun résultat.
Par contre si je fais :
Code:
RetourFonction=API("USER32","EnableMenuItem",nMenu ,2,0x0401) // 4 = MF_ByPosition / 1 = MF_Grayed
Le sous-menu numéro 3 est bien grisé.
Est-ce que quelqu'un peut m'aider là-dessus ?
Merci d'avance pour vos réponses et autres idées.
Note : si vous avez du code en c, c++ ou vb, je m'en sortirai sans problème. ;)