Messagebox non bloquante

darksoul07 Messages postés 19 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 11 avril 2008 - 2 juin 2006 à 10:36
Bel0 Messages postés 71 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 14 septembre 2007 - 3 juin 2006 à 19:27
j aimerai utiliser une messagebox mais qui soit non bloquante pour mon application comment faire ?

^^^§^^^

6 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 juin 2006 à 11:13
Tu devrais te faire tes propres MessageBox, mais avec des CreateWindow (au lieu de boites de dialogues). Comme ca ce n'est plus bloquant.
L'autre solution est de garder MessageBox, et de l'affichier dans un thread:

DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
LPMBSTRUCT lpmbs = (LPMBSTRUCT)lpParameter;
MessageBox(lpmbs->hWnd, lpmbs->lpText, lpmbs->lpCaption, lpmbs->uType);
return 1;
}


typedef struct tagMBSTRUCT
{
HWND hWnd;
LPCTSTR lpText;
LPCTSTR lpCaption;
UINT uType;
} MBSTRUCT, *LPMBSTRUCT;

Et pour créer la MessageBox:
MBSTRUCT mbs;
// remplir la structure
CreateThread(0, 0, MsgBoxThread, &mbs, 0, 0);
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
2 juin 2006 à 12:15
Attention a ne pas mettre MBSTRUCT mbs en local de la fct qui appel CreateThread (car lorsque ThreadProc voufra l'utiliser il se peut que la structure ne soit plus accesible)
0
Bel0 Messages postés 71 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 14 septembre 2007
2 juin 2006 à 12:55
Afficher dans un thread ... sortir le tracteur pour ramasser une fraise en gros :P

Le premier paramètre donne est le handle du parent. Autrement dit, tant que le message est affiché, la fenetre parent ne pourra pas avoir le focus (elle ne reçoit donc pas de messages et apparait comme "bloquée"). Pour contourner le problème, il suffit de mettre NULL comme premier argument de la fonction. De cette façon, le parent continue à recevoir ses messages et n'apparait pas comme bloquée.

Belo
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 juin 2006 à 12:59
Ah oui... effectivement c'est mieux comme ca
0

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

Posez votre question
darksoul07 Messages postés 19 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 11 avril 2008
3 juin 2006 à 16:52
Merci mais je suis arrivé a trouvé une autre solution en utilisant messageboex
en premier parapètre je lui ai mis le handel d une autre fenêtre (progressbar que j utilise en même temps) et ma progressbar n est pas bloquante.

voila merci quand même pour vos idée zet géniaux longue vie a cppfrance

^^^§^^^
0
Bel0 Messages postés 71 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 14 septembre 2007
3 juin 2006 à 19:27
Il est quand même mis dans la doc de la fonction qu'il ne faut *PAS* utiliser de handle de child window. Je ne sais pas les conséquences que cela peut avoir. Mais ils ont quand meme construit la chose, peut-être faudrait-il écouter ce qu'ils disent :)
0
Rejoignez-nous