|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 5 ![]() |
Bonjour,
je suis débutant en C++ avec wxWidget. j'ai un programme avec un spinctrl dont la valeur sert de facteur de zoom. J'ai un évènement EVT_SPINCTRL(ID_ZOOM, GUIFrame::OnZoomChange) sur le spincrtl. Dans l’évènement, je recalcule et affiche des images, ce qui prend assez bien de temps(2 ou 3 sec). Mon problème c'est que si je clique plusieurs fois sur le spinctrl pour diminuer sa valeur, l’évènement est déclenché plusieurs fois, et je dois attendre. Y aurait-il un moyen pour passer au dessus des évènements intermédiaires ? Par Ex: je démarre à 100 pour diminuer vers 95, et je voudrais que le recalcul ne se fasse qu'une fois à 95 Merci d'avance |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() Emmanuel DelogetDéveloppeur informatique Inscription : septembre 2007 Messages : 1 828 ![]() |
Citation:
Ton programme ne peut pas savoir qu'à 95, tu va t'arrêter. Que doit-il faire si tu fais une pause d'une seconde entre 96 et 95 ?
__________________
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...] Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi. Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça. Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas. Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() |
Selon cette page, il n'y a pas possibilité de faire ce genre de choses sur un wxSpinCtrl.
Ca tiendrait plus de l'event de wxSlider : EVT_SCROLL_THUMBRELEASE ou EVT_COMMAND_SCROLL_THUMBRELEASE selon que tu dérives wxSlider ou pas
__________________
Si vous ne trouvez plus rien, cherchez autre chose... Chef de projet (et unique exécutant pour l'instant) pour Castor 3D |
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 5 ![]() |
Merci, c'est bien ce que je pensais.
Je vais regarder la proposition avec le slider. |
|
|
00
|
|
|
#5 | ||
|
Membre confirmé
![]() Xavier PerrissoudDéveloppeur amateur Inscription : décembre 2008 Messages : 139 ![]() |
Hello
Tu as quand même plusieurs possibilités pour limiter ce genre de problème. La plus simple serait, de désactiver le wxSpinCtrl tant que l'événement n'est pas traité, mais c'est quand même moyen comme solution. La deuxième serait l'utilisation d'une variable booléenne statique permettant de savoir si l'événement n'est pas déjà en cours de traitement : Code :
@+ Xav' |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 5 ![]() |
Merci,
je vais essayer ça tout de suite |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 5 ![]() |
Bonjour,
j'ai essayé mais ça ne fonctionne pas, le programme attend toujours que l'event en cours soit terminé et les autres clicks sur le spinctrl arrive en chaine après. Je crois qu'il ne me reste plus qu'à rentre le spinctrl disabled pendant le traitement de l'event. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com