Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Capture d'évènement

6 réponses
Avatar
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

6 réponses

Avatar
Christian HUBERT-HUGOUD- Xtrem7
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" a écrit dans le message de
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




Avatar
jean-marc
"Jerome VERITE" wrote in message
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
Avatar
Patrice Henrio
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" a écrit dans le message de
news:406bf7fa$0$1969$
"Jerome VERITE" wrote in message
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





Avatar
Jerome VERITE
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" a écrit dans le
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" a écrit dans le message de
news:406bf7fa$0$1969$
> "Jerome VERITE" wrote in message
> 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
>
>
>




Avatar
Jerome VERITE
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" a écrit dans le message de
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" a écrit dans le
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" a écrit dans le message de
> news:406bf7fa$0$1969$
> > "Jerome VERITE" wrote in message
> > 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
> >
> >
> >
>
>




Avatar
ng
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 a écrit :

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