|
|
fr.comp.os.ms-windows.programmation Affichage de l'article : Re: Tutorial : Programmer en 'C' sous windows (L4)
Date :
Le 03 avril 2008
From :
Vincent Burel
Sujet :
Re: Tutorial : Programmer en 'C' sous windows (L4)
"Vincent Burel" wrote in message
news:47f4adc2$0$832$ba4acef3@news.orange.fr...
>
> "Sylvain SF" wrote in message
> news:47f4a618$0$898$ba4acef3@news.orange.fr...
> > Vincent Burel wrote on 03/04/2008 11:12:
> > >
> > > Déjà je peux vous mettre à contribution pour une question :
> > > quand on ouvre une message box (about box ou confirmation de
fermeture)
> le
> > > code est censé attendre la sortie de l'appel à ce MessageBox (ce sont
> des
> > > dialogues modales), pourtant nous continuons de recevoir des message
> > > WM_TIMER. Comment expliquer ce phénomène simplement ?
> >
> > MessageBox(..) utile sa propre pompe à message pour recevoir les events
> > destinés au dialogue qu'il contrôle, mais le thread principal (et la
> > pompe principale) continue de recevoir les msg qui sont destinés à
> > toutes les fenêtres qu'il contrôle.
>
> qui dit "seconde pompe à messages" dit seconde boucle de message, donc
> second thread, or il ne me semble pas qu'un nouveau thread se crée à
> l'ouverture d'une boite de dialogue modale.
non, c'est vous qui avait raison, mais je reformule, l'appel à MessageBox
(ou à toute ouverture de boite de dialogue modale) fait rentrer le code dans
la boucle de message de la boite de dialogue. Ce n'est plus notre
MessageLoop qui traite les événement mais celle de la boite de dialogue. et
c'est cette boucle qui par le dispatch appelle notre callback avec
l'événement WM_TIMER par exemple.
d'accord ?
VB
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|