Empêcher le rafraichissement d'une fenêtre MDI

Résolu
Myrddin772Li199 Messages postés 28 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 mars 2010 - 10 mars 2008 à 13:18
Myrddin772Li199 Messages postés 28 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 mars 2010 - 9 avril 2008 à 09:46
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 mars 2008 à 13:47
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 ...
...
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 avril 2008 à 08:36
Dim oForm as Form

For Each oForm in Forms
If TypeOf oForm Is frmDocument
oForm.Redessine
End If
Next oForm
3
Myrddin772Li199 Messages postés 28 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 mars 2010
10 mars 2008 à 20:24
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...
0
Myrddin772Li199 Messages postés 28 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 mars 2010
9 avril 2008 à 08:23
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Myrddin772Li199 Messages postés 28 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 mars 2010
9 avril 2008 à 08:58
Merci Renfield !

Juste une question pour ma culture personnelle... pourquoi, ça ne marche pas avec la déclaration en frmDocument ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 avril 2008 à 09:01
toutes tes forms ne sont pas nécessairement des frmDocument
0
Myrddin772Li199 Messages postés 28 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 mars 2010
9 avril 2008 à 09:46
ok... merci... c'est vrai que dit comme ça... ça parait tout con...
0
Rejoignez-nous