[VB(A)] Problème avec la fonction API DeleteMenu. . .

Problème avec la fonction API DeleteMenu. . . [VB(A)] - VB/VBA/VBS - Programmation

Marsh Posté le 25-10-2002 à 18:17:42    

Bon, sous Excel, je veux supprimer certains éléments du menu système. À l'heure actuelle, je procède comme suit :
 


 
Const SC_CLOSE As Long = &HF060
Const SC_MOVE As Long = &HF010
Const SC_RESTORE As Long = &HF120
Const SC_SEPARATOR As Long = &HF00F
Const SC_SIZE As Long = &HF000
Const SC_MAXIMIZE As Long = &HF030
 
Const MF_BYCOMMAND As Long = &H0&
 
Dim lngHandle As Long
   
lngHandle = GetSystemMenu(FindWindowA("XLMAIN", Application.Caption), False)
 
Call DeleteMenu(lngHandle, SC_CLOSE, MF_BYCOMMAND)
Call DeleteMenu(lngHandle, SC_MOVE, MF_BYCOMMAND)
Call DeleteMenu(lngHandle, SC_RESTORE, MF_BYCOMMAND)
Call DeleteMenu(lngHandle, SC_SEPARATOR, MF_BYCOMMAND)
Call DeleteMenu(lngHandle, SC_SIZE, MF_BYCOMMAND)
Call DeleteMenu(lngHandle, SC_MAXIMIZE, MF_BYCOMMAND)
 


 
Ma routine supprime tous les éléments du menu système de ma fenêtre Excel à l'exception de l'élément "Réduire"
 
Bon, tout ça fonctionne très bien sous toutes plate-formes confondues (Windows 95 à Windows XP).
 
Mon problème est le suivant : si (et seulement si) l'interface Luna est activée sous Windows XP, le bouton "Restaurer" dans la barre système demeure utilisable alors qu'il ne devrait pas l'être. Si je désactive l'interface Luna, tout fonctionne de nouveau correctement et seul le bouton "Réduire" fonctionne.
 
Quelqu'un pourrait-il éclairer ma lanterne ?
 
Merci :)

Reply

Marsh Posté le 25-10-2002 à 18:17:42   

Reply

Marsh Posté le 29-10-2002 à 21:34:34    

Up! :bounce:
 
J'ai toujours pas trouvé comment régler ce problème :(
 
J'ai essayé de supprimer entièrement le menu avec DestroyMenu, mais y'a rien à faire, le bouton "Agrandir/Restaurer" fonctionne toujours.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed