Empêcher le rafraichissement d'une fenêtre MDI [Résolu]

Signaler
Messages postés
28
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2010
-
Messages postés
28
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2010
-
Bonjour à tous !

Voilà mon problème :
J'ai une fenêtre MDI (qui contient des fenêtres filles donc) et je modifie l'aspect des fenêtres filles.
Je sais comment modifier immédiatement l'aspect de la fenêtre active. Pour modifier l'aspect de toute les fenêtres ouvertes, je modifie l'affichage (avec la méthode Arrange) deux fois (une fois pour modifier l'aspect de toutes les fenêtres ouvertes et une fois pour revenir à l'affichage choisi) mais cela se voit... J'aimerais donc empêcher le rafraississement automatique avant de faire ces deux modifs pur le réactiver ensuite...

A moins que l'on puisse forcer le "redimensionnement" de toutes les fenêtres sans passer par toutes ces "magouilles"...

Merci d'avance de votre aide.

7 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
par quel biai modifie tu l'aspect des filles ?
parce que forcer un redimensionnement (en fait deux) pour forcer une redraw, c'est bancal...

tu peux iterer sur les Forms ouvertes en faisant:

dim oform as form
For each oForm in Forms
oForm.Refresh '# par exemple
Next oForm

après, a voir si tu ne dois pas passer par APIs pour que ca se voie le moins possibles..

RedrawWindow
BeginDeferWindowPos/DeferWindowPos/EndDeferWindowPos ...
...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
Dim oForm as Form

For Each oForm in Forms
If TypeOf oForm Is frmDocument
oForm.Redessine
End If
Next oForm
Messages postés
28
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2010

Nickel ! Ca marche d'enfer (enfin en passant par le Resize )

Je n'avais pas pensé à ça...
Je suis décidément très con en ce moment...
Messages postés
28
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2010

Je reviens à la charge avec mon problème...

j'avais tapé ça :
Dim oForm as frmDocument   ' ça c'est le nom de la forme fille...

For Each oForm in Forms
   oForm.Redessine               ' ça c'est la méthode qui redessine tout comme il faut...
Next oForm

Ca marchait d'enfer mais depuis que j'ai compléter le programme avec mes modules, plus moyen d'utiliser ça...
J'ai toujours accès à la colection Forms (normal quoi ) mais VB me dit qu'il y a une incompatibilité de type...

Dois-je déclarer oForm comme form seulement ? Ou cette boucle est-elle mal placée ?

Merci d'avance pour votre aide à tous
Messages postés
28
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2010

Merci Renfield !

Juste une question pour ma culture personnelle... pourquoi, ça ne marche pas avec la déclaration en frmDocument ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
toutes tes forms ne sont pas nécessairement des frmDocument
Messages postés
28
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
14 mars 2010

ok... merci... c'est vrai que dit comme ça... ça parait tout con...