Evènement d'une feuille mdi [Résolu]

Signaler
Messages postés
55
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
14 juillet 2012
-
Messages postés
55
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
14 juillet 2012
-
Bonjour à tous,

Je voulais savoir si les cases situées en haut à droite (case windows) peuvent être désactivées sur une forme MDI comme c'est le cas pour une form standard ?

Merci d'avance de vos réponses.


Cordialement.
Masterfree

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Mats ce code dans la toute première form fille montrée ! Cela suffira.
Rien ne t'empêche non plus, si tu le souhaites, de mettre tout cela dans un module, mais en gérant une fonction (appelons-la toto) déclarée publiquer dans le module bas et reprenant toutes les instructions qui se trouve dans l'évènement activate ci-dessus !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour,
Oui, mais depuis l'évènement Activate de la forme fille et en utilisant des fonctions de l'Api de Windows.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Je viens de le vérifier. Fonctionne.
Exemple :
Mets ce code dans le module de la Form Fille :
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
   (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
   (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
      ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Sub Form_Activate()
  Dim lStyle As Long
  Dim RectMdi As RECT
  GetWindowRect MDIForm1.hwnd, RectMdi
  lStyle = GetWindowLong(MDIForm1.hwnd, (-16))
  lStyle = lStyle And Not &H80000
  lStyle = lStyle And Not &H10000
  lStyle = lStyle And Not &H20000
  lStyle = lStyle And Not &HC00000 '===================>> mets en commentaires si tu veux ler caption
  SetWindowLong MDIForm1.hwnd, (-16), lStyle
  SetWindowPos MDIForm1.hwnd, 0, RectMdi.Left, RectMdi.Top, RectMdi.Right - RectMdi.Left, RectMdi.Bottom - RectMdi.Top, &H40
End Sub


Ta MDI devant, dans cet exemple, être nommée MDIForm1
Fonctionne bien (également vérifié) même si menu présent dans MDI.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
55
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
14 juillet 2012

Mets ce code dans le module de la Form Fille :
Bonjour ucfoutu,

Tu me parles de FormFille, mais j'en ai plus d'une centaine.
De plus, je les ai mises avec l'attribut de la propriété "BorderStyle" à 0.
Donc, pour moi, elles ne sont pas concernées.
Dans le cas contraire, je me vois mal intégrer ces lignes de codes dans toutes les feuilles.
Si je mets ça dans un module, est-ce que ça va marcher, c'est la question que je me pose ?

Ta MDI devant, dans cet exemple, être nommée MDIForm1
Fonctionne bien (également vérifié) même si menu présent dans MDI.

Non, je n'ai pas mis de menu parce que je n'ai que trop peu de commandes (4 au total).



Cordialement.
Masterfree
Messages postés
55
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
14 juillet 2012

C'est bien vu ucfoutu.
Merci de ton aide.
A+

Cordialement.
Masterfree