perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006
-
28 juil. 2006 à 17:56
perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006
-
1 août 2006 à 10:58
Bonjour,
C'est encore moi :oD
voila, j'utilise C++(MFC) (pour ceux qui ne le savent pas encore :o)
et je souhaiterais pouvoir lancer une fenetre (un CDialog par exemple) mais sans bloquer mon application!
Car je connais doModal mais ca me bloque mon appli tant que le CDialog n'est pas refermé :(
Exist'il un autre moyen pour lancer un CDialog?
Merci!
---Perig---
Pour vous servir
Et parfois en galère
Souvent même
BunoCS
Messages postés15360Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 mars 2023102 31 juil. 2006 à 09:11
d'un Create(), oui, suivi d'un ShowWindow() quand même...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15360Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 mars 2023102 31 juil. 2006 à 11:58
Pour le signe "Pour cent", c'est normal: il faut le doubler: %% (même raison que pour '\' et '\\')
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006 31 juil. 2006 à 10:25
Merci,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
J'ai tout de même cherché une petite heure pourquoi mon create ne marchait pas lol
Il faut en effet un
ShowWindow(SW_SHOW)
Par contre autre question pour le même truc :
J'ouvre donc ma fenêtre. Cette fenêtre (DialogProgress) comprend le pourcentage d’avancement de qqch (avec un affichage texte et une barre de progress).
Maintenant j’ai une fonction qui est longue a s'exécuter et qui appel donc une callback pour pouvoir donner l'état d'avancement.
Cette Callback met à jour un champ de mon DialogProgress (ca marche) mais j'ai juste ce champ de visible (tout le reste de ma fenêtre est grise comme figée)
Savez vous pourquoi ? Je dois faire un rafraichissement complet de ma fenêtre à chaque appel ?
Un peut de code pour une explication peut-être plus claire :
En globale :
Include ‘ProgressDlg.h’
ProgressDlg DialogProgress ;
Dans le même fichier : (la fonction call back qui est bien appelée et qui marche très bien)
BunoCS
Messages postés15360Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 mars 2023102 31 juil. 2006 à 11:01
Il faut, je pense, forcer le rafraichissement avec la fonction Invalidate();
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006 1 août 2006 à 09:54
Pour le % j'avais essayé le\ mais je n’avais pas pensé à doubler le signe ;)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Par contre mon interface fige toujours, j'ai essayé de mettre ma fonction SaveCine (celle qui bouffe les ressources) dans un thread et donc mon callback est appelé a partir de ce thread et il met a jour mon dialog mais j'ai toujours le même problème, voir même... ca ne marche pas à tout les coups, parfois ca fige carrément tout Windows et un ctrl+alt+sup est nécessaire pour tuer la tache!
---Perig---
Pour vous servir
Et parfois en galère
Souvent même
perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006 1 août 2006 à 10:58
Finalement j'ai trouvé une solution (pas très propre a mon gout mais ca marche)
C'est que la fonctions dans la quelle je fessais la création de ma fenêtre ne rendait pas la main tant que le thread était actif et visiblement ca figer le prog
Je lance donc ma DialogProgresse puis je lance mon thread en lui passant un pointeur de cette Dialog.
Ma fonction qui lance tout ceci se termine alors et le thread continue son travail
il lance la fonction bloquante qui elle même appelle couramment la callback pour témoigner de l'avancement via la Dialog box.
A la fin du thread celui-ci ferme et détruit simplement la DialogProgress.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Voila ce qui me gène c’est que la destruction de mon tread est finalement pas synchronisé avec mon prog principal mais bon… ce n’est pas trop gênant !
Merci de ton aide, je devrais pouvoir m'entirer maintenant!
---Perig---
Pour vous servir
Et parfois en galère
Souvent même