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) :
Dans les 2 cas, pas d'erreur mais aucun résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Par contre si je fais :
Le sous-menu numéro 3 est bien grisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RetourFonction=API("USER32","EnableMenuItem",nMenu ,2,0x0401) // 4 = MF_ByPosition / 1 = MF_Grayed
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.
Partager