Le pendant à Resize.....

MaximHom Messages postés 9 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 2 septembre 2005 - 2 sept. 2005 à 14:25
  - 2 sept. 2005 à 22:14
Bonjour,



Quand je redimensionne une fenêtre, la fonction Resize est appelée, je
peux donc en profiter, pour sauvegarder la nouvelle taille par exemple.

Quelle est la fonction qui est appeleé, simplement quand je déplace ma feuille, avec la souris par exemple ?

Dans ce cas, la fonction Resize n'est pas appelée, puisqu'il n'y a pas de redimensionnement...

Je n'arrive pas à trouver, les fonction Deactivate, Lostfocus, Move, etc ne donnent pas le résultat escompté....



Merci

10 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 sept. 2005 à 14:40
Essaye avec l'EVT Paint
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 sept. 2005 à 14:45
non il n'y a pas d'évênement lié au déplacement de la Forme.

il faut détourner les messages de Windows

ça passe par un subclassing



http://www.vbfrance.com/forum.v2.aspx?ID=544347

Daniel
0
MaximHom Messages postés 9 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 16:46
Bon, tout ça, ça ne m'arrange pas vraiment...



Le "subclassing", va falloir que j'étudie, je le sens bien...

Quand à l'EVT Paint, je ne sais pas ce que sais non plus...



Enfin, je me demande : quand Windows ferme une feuille (application),
ou quand on la ferme par la case système, comment il a fallu faire avant pour qu'on retrouve la feuille à la même place sur l'écran ?...
0
MaximHom Messages postés 9 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 16:50
Pardon....

Quand à l'EVT Paint, je ne sais pas ce que c'est non plus...

(Décidément, je vieillis...)
0

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

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 sept. 2005 à 16:54
il y a toujours les propriétés Left et Top qui donne la position de la feuille

tu peux les sauver dans un fichier et les retrouver au démarrage.

Daniel
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 sept. 2005 à 17:00
Ben si tu connais l'EVT Resize() d'une form, l'EVT Paint() est juste avant ...
0
MaximHom Messages postés 9 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 18:33
Pour Crenaud76 :

Désolé, je ne connais pas non plus l'EVT Resize...

En fait, je ne sais pas ce que c'est que l'EVT tout court...

Mais je vais essayer de me renseigner ! Merci pour la piste.



Pour Gobillot :

Left et Top, je connais ... et j'utilise !

Le problème, c'est comment aller les chercher (lire ou enregistrer, peu
importe), s'il n'y a pas d'évènement précis et obligatoire quand je
déplace ma feuille !



Quand je clique sur Quitter, ou que je redimensionne ma feuille,
pas de soucis, la routine concernée est appelée et fait ce qu'il faut.

J'ai aussi réussi à utiliser Form_Unload(xxxx), qui ne voulait pas
tourner avant, je ne sais pas pourquoi (peut-être parce que je n'avais
rien mis entre les parenthèses).

Avec Form_Unload(xxxx), ça marche quand je ferme ma feuille avec la
case système, mais je n'ai pas essayé si ça fonctionnait quand Windows
ferme tout (quand on sort et qu'on éteint la machine).



Reste que si je déplace ma feuille hors des limites de l'écran, je n'ai
pas d'événement propre à me remettre les bonnes valeurs pour ramener ma
feuille à la limite (if left < 0 then left = 0 par exemple).

Je suppose qu'il devrait tout de même y avoir un truc, peut-être du
côté de DragDrop, non ? J'ai déjà fouillé par là, mais je n'ai rien
trouvé de concret....



Bon, mais j'ai bien avancé !

Merci à tous,
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 sept. 2005 à 18:45
je vois plus que le Timer avec un temps de retard par rapport au subclassing.

et pour l'évênement Form_QueryUnload et Form_Unload oui ils sont bien appelés à la fermeture de Windows.




Timer1.Interval = 10

Timer1.Enabled = True



Private Sub Timer1_Timer()

Me.Caption = Me.Left & " " & Me.Top

End Sub


Daniel
0
MaximHom Messages postés 9 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 19:30
OK merci, mais ça, j'ai déjà fait....

Mais j'ai enlevé, le timer, ça ne fait pas très élégant je trouve... Et ça ne me donne rien de plus...

D'autant que rien ne va le mettre sur "Enable" quand je vais déplacer ma feuille...

Et d'autre part, le laisser tout le temps, avec un Interval de 5000
p.e., ça va consommer de la ressource pour rien (ma feuille est
destinée à rester en permanence à l'écran).

Cette solution ne peut être retenue...

Bon, je vais bien tomber un jour ou l'autre sur la formule magique...



Merci quand même et désolé du dérangement.
0
Christophe R
0
Rejoignez-nous