XL 2016 VBA - Tester si le Menu Système est présent dans un UserForm

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dudu2

XLDnaute Barbatruc
Bonjour,

J'arrive à ajouter le Menu Système à un UserForm par contre je suis incapable de déterminer a postériori si ce Menu Système est présent ou pas.
Je ne sais pas comment traiter le iStyle pour retourner un booléen.
Voir le fichier joint (modifié à 22h30 car initialement bugué)
 

Pièces jointes

Dernière édition:
Solution
Bonsoir,

Le Menu Système ajouté introduit la possibilité de minimiser le UserForm.
Je n'ai pas ajouté les options de maximisation et de redimensionnement manuel.

Donc AVEC:
1718398204427.png

et SANS:
1718398377409.png


Voilà ce qui ne fonctionne pas: le iStyle And WS_SYSMENU
Sachant que pour l'ajouter j'ai fait un iStyle = iStyle Or WS_SYSMENU
VB:
'---------------------------------------------
'Retourne True si le UserForm a le System Menu
'---------------------------------------------
Function UserFormHasSystemMenu() As Boolean
    Dim iStyle As LongPtr
 
    'Get the basic window styles
    iStyle = GetWindowLongPtr(UserFormHandle, GWL_STYLE)
    'MsgBox iStyle
 
    UserFormHasSystemMenu = CBool(iStyle And WS_SYSMENU)
End Function
 
Dernière édition:
ll n'y a aucune raison que la valeur renvoyée par GetWindowLong soit LongPtr. Elle devrait rester Long.
Il n'y a aucune raison non plus que le nom de l'API ait changé. Même le handle je ne suis pas sûr qu'il doit passer en LongPtr.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
2 K
Retour