Capture d'évènement

Le
Jerome VERITE
Bonjour,

Afin d'adapter mon interface au fur et a mesure de l'utilisation de mon
application, j'effectue différentes mises à jour sur les contrôles d'une
fenêtre après que l'utilisateur l'ait redimensionnée. Je connais bien
l'evenement resize, mais le fait d'effectuer les mises à jour à chaque
instant du redimensionnement ralentit beaucoup et donne un effet saccadé du
plus mauvais genre.

Ma question est donc : est-il possible de capturer l'evenement correspondant
au moment ou l'utilisateur relache la souris juste après un
redimensionnement de manière à ne faire ma mise à jour qu'une seule fois ?

Merci d'avance pour vos idées.

Jérôme
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian HUBERT-HUGOUD- Xtrem7
Le #14757561
J'ai partiellement résolu ce pb en mettant une picture box comme barre
d'outils ; quand un resize survient, l'évènement resize de la picturebox est
appelé à la fin du resize de la form.

Je sais aussi que l'on peut paramétrer via les api (il me semble que c'est
par SetWindow quelque chose) cet aspect, mais je ne sais plus où je l'ai lu.

Hope this helps.

Christian


"Jerome VERITE" news:
Bonjour,

Afin d'adapter mon interface au fur et a mesure de l'utilisation de mon
application, j'effectue différentes mises à jour sur les contrôles d'une
fenêtre après que l'utilisateur l'ait redimensionnée. Je connais bien
l'evenement resize, mais le fait d'effectuer les mises à jour à chaque
instant du redimensionnement ralentit beaucoup et donne un effet saccadé


du
plus mauvais genre.

Ma question est donc : est-il possible de capturer l'evenement


correspondant
au moment ou l'utilisateur relache la souris juste après un
redimensionnement de manière à ne faire ma mise à jour qu'une seule fois ?

Merci d'avance pour vos idées.

Jérôme




jean-marc
Le #14757551
"Jerome VERITE" news:
Bonjour,

Afin d'adapter mon interface au fur et a mesure de l'utilisation de mon
application, j'effectue différentes mises à jour sur les contrôles d'une
fenêtre après que l'utilisateur l'ait redimensionnée. Je connais bien
l'evenement resize, mais le fait d'effectuer les mises à jour à chaque
instant du redimensionnement ralentit beaucoup et donne un effet saccadé


du
plus mauvais genre.

Ma question est donc : est-il possible de capturer l'evenement


correspondant
au moment ou l'utilisateur relache la souris juste après un
redimensionnement de manière à ne faire ma mise à jour qu'une seule fois ?



Hello,

je ne comprend pas bien ton souci, car l'évènement Resize n'est appelé qu' à
la fin du redimensionnement.
Pour s'enconvaincre, il suffit de faire une forme avec dessus juste un label
(Label1) et de mettre ce code sur la forme

Private Sub Form_Resize()
Static n As Integer
n = n + 1
Label1.Caption = n
Label1.Refresh
End Sub

Quand tu redimensionne ta fenêtre, on ne passe dans l'évènement que
lorsqu'on relache la souris. On le voit bien en observant que le compteur du
label1 n'augmente de 1 qu'à chauqe relachement de la souris.

Jean-Marc
Patrice Henrio
Le #14757541
Et pourtant j'utilises personnellement un "resize" d'une forme contenant un
picture box et visiblement celui-ci est bien redimensionné au fur et à
mesure. Par contre certaines parties du "resize" ne sont pas terminés en
temps et en heures et nécessiterait un doevents si cela était utile.
Je pense que le "resize" utilise en interne un "resize" de certains
controles mais je peux me tromper.

"jean-marc" news:406bf7fa$0$1969$
"Jerome VERITE" news:
> Bonjour,
>
> Afin d'adapter mon interface au fur et a mesure de l'utilisation de mon
> application, j'effectue différentes mises à jour sur les contrôles d'une
> fenêtre après que l'utilisateur l'ait redimensionnée. Je connais bien
> l'evenement resize, mais le fait d'effectuer les mises à jour à chaque
> instant du redimensionnement ralentit beaucoup et donne un effet saccadé
du
> plus mauvais genre.
>
> Ma question est donc : est-il possible de capturer l'evenement
correspondant
> au moment ou l'utilisateur relache la souris juste après un
> redimensionnement de manière à ne faire ma mise à jour qu'une seule fois


?

Hello,

je ne comprend pas bien ton souci, car l'évènement Resize n'est appelé qu'


à
la fin du redimensionnement.
Pour s'enconvaincre, il suffit de faire une forme avec dessus juste un


label
(Label1) et de mettre ce code sur la forme

Private Sub Form_Resize()
Static n As Integer
n = n + 1
Label1.Caption = n
Label1.Refresh
End Sub

Quand tu redimensionne ta fenêtre, on ne passe dans l'évènement que
lorsqu'on relache la souris. On le voit bien en observant que le compteur


du
label1 n'augmente de 1 qu'à chauqe relachement de la souris.

Jean-Marc





Jerome VERITE
Le #14757531
Je vais répondre à vos deux remarques en une fois.

Tout dépend de la configuration de Windows, à savoir si vous avez activer
l'option, "afficher le contenu des fenêtres pendant leur déplacement"

En ce qui me concerne, je l'active, j'ai donc le resize tout au long du
redimensionnement. Mais j'aimerai quand celui-ci se termine.

Je suis même preneur de sous classement, de hook et de tout ce que vous
pouvez imaginer.

Merci d'avance

Jérôme

"Patrice Henrio" message de news:
Et pourtant j'utilises personnellement un "resize" d'une forme contenant


un
picture box et visiblement celui-ci est bien redimensionné au fur et à
mesure. Par contre certaines parties du "resize" ne sont pas terminés en
temps et en heures et nécessiterait un doevents si cela était utile.
Je pense que le "resize" utilise en interne un "resize" de certains
controles mais je peux me tromper.

"jean-marc" news:406bf7fa$0$1969$
> "Jerome VERITE" > news:
> > Bonjour,
> >
> > Afin d'adapter mon interface au fur et a mesure de l'utilisation de


mon
> > application, j'effectue différentes mises à jour sur les contrôles


d'une
> > fenêtre après que l'utilisateur l'ait redimensionnée. Je connais bien
> > l'evenement resize, mais le fait d'effectuer les mises à jour à chaque
> > instant du redimensionnement ralentit beaucoup et donne un effet


saccadé
> du
> > plus mauvais genre.
> >
> > Ma question est donc : est-il possible de capturer l'evenement
> correspondant
> > au moment ou l'utilisateur relache la souris juste après un
> > redimensionnement de manière à ne faire ma mise à jour qu'une seule


fois
?
>
> Hello,
>
> je ne comprend pas bien ton souci, car l'évènement Resize n'est appelé


qu'
à
> la fin du redimensionnement.
> Pour s'enconvaincre, il suffit de faire une forme avec dessus juste un
label
> (Label1) et de mettre ce code sur la forme
>
> Private Sub Form_Resize()
> Static n As Integer
> n = n + 1
> Label1.Caption = n
> Label1.Refresh
> End Sub
>
> Quand tu redimensionne ta fenêtre, on ne passe dans l'évènement que
> lorsqu'on relache la souris. On le voit bien en observant que le


compteur
du
> label1 n'augmente de 1 qu'à chauqe relachement de la souris.
>
> Jean-Marc
>
>
>




Jerome VERITE
Le #14757521
J'ai trouvé

http://www.vb-helper.com/howto_form_done_resizing.html

Merci à vous de m'avoir mis sur la voie.

Jérôme

"Jerome VERITE" news:OjSA1F%
Je vais répondre à vos deux remarques en une fois.

Tout dépend de la configuration de Windows, à savoir si vous avez activer
l'option, "afficher le contenu des fenêtres pendant leur déplacement"

En ce qui me concerne, je l'active, j'ai donc le resize tout au long du
redimensionnement. Mais j'aimerai quand celui-ci se termine.

Je suis même preneur de sous classement, de hook et de tout ce que vous
pouvez imaginer.

Merci d'avance

Jérôme

"Patrice Henrio" message de news:
> Et pourtant j'utilises personnellement un "resize" d'une forme contenant
un
> picture box et visiblement celui-ci est bien redimensionné au fur et à
> mesure. Par contre certaines parties du "resize" ne sont pas terminés en
> temps et en heures et nécessiterait un doevents si cela était utile.
> Je pense que le "resize" utilise en interne un "resize" de certains
> controles mais je peux me tromper.
>
> "jean-marc" > news:406bf7fa$0$1969$
> > "Jerome VERITE" > > news:
> > > Bonjour,
> > >
> > > Afin d'adapter mon interface au fur et a mesure de l'utilisation de
mon
> > > application, j'effectue différentes mises à jour sur les contrôles
d'une
> > > fenêtre après que l'utilisateur l'ait redimensionnée. Je connais


bien
> > > l'evenement resize, mais le fait d'effectuer les mises à jour à


chaque
> > > instant du redimensionnement ralentit beaucoup et donne un effet
saccadé
> > du
> > > plus mauvais genre.
> > >
> > > Ma question est donc : est-il possible de capturer l'evenement
> > correspondant
> > > au moment ou l'utilisateur relache la souris juste après un
> > > redimensionnement de manière à ne faire ma mise à jour qu'une seule
fois
> ?
> >
> > Hello,
> >
> > je ne comprend pas bien ton souci, car l'évènement Resize n'est appelé
qu'
> à
> > la fin du redimensionnement.
> > Pour s'enconvaincre, il suffit de faire une forme avec dessus juste un
> label
> > (Label1) et de mettre ce code sur la forme
> >
> > Private Sub Form_Resize()
> > Static n As Integer
> > n = n + 1
> > Label1.Caption = n
> > Label1.Refresh
> > End Sub
> >
> > Quand tu redimensionne ta fenêtre, on ne passe dans l'évènement que
> > lorsqu'on relache la souris. On le voit bien en observant que le
compteur
> du
> > label1 n'augmente de 1 qu'à chauqe relachement de la souris.
> >
> > Jean-Marc
> >
> >
> >
>
>




ng
Le #14638171
Salut,

Il faudrait subclasser le message WM_EXITSIZEMOVE
http://groups.google.com/groups?q=WM_EXITSIZEMOVE&ie=UTF-8&oe=UTF-8&hl=fr&btnG=Recherche+Google

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Jerome VERITE
Bonjour,

Afin d'adapter mon interface au fur et a mesure de l'utilisation de
mon application, j'effectue différentes mises à jour sur les
contrôles d'une fenêtre après que l'utilisateur l'ait redimensionnée.
Je connais bien l'evenement resize, mais le fait d'effectuer les
mises à jour à chaque instant du redimensionnement ralentit beaucoup
et donne un effet saccadé du plus mauvais genre.

Ma question est donc : est-il possible de capturer l'evenement
correspondant au moment ou l'utilisateur relache la souris juste
après un redimensionnement de manière à ne faire ma mise à jour
qu'une seule fois ?

Merci d'avance pour vos idées.

Jérôme


Publicité
Poster une réponse
Anonyme