OVH Cloud OVH Cloud

Mise à jour fenêtre pendant de longues procédures

4 réponses
Avatar
drummy
Bonjour,
A l'initialisation de mon programme, j'affiche une dialogbox avec
CreateDialog pour dessiner une image (PictureBox) pendant que je crée la
fenêtre principale (OpenGL) et que je charge des fichiers. Tous ces
chargements sont assez longs et pendant que ces "sous-programmes" se font,
la boucle de fenêtre n'est pas effectuée et donc les messages ne sont pas
lus. Du coup la dialogbox n'est pas redessinée et devient grisée effaçant
l'image. Comment faire pour que la dialogbox vérifie ses messages et se
redessine régulièrement sans effectuer une boucle principale et pendant que
les procédures se font?
Merci d'avance
David

4 réponses

Avatar
patrox
un thread.

ou alors une technique plus artisanale, cree une fonction
"refreshWindowEvents" que tu appelle le plus possible depuis tes appels
openGL.

void refreshWindowEvents( void )
{
if ( PeekMessage( ... , PM_REMOVE )
{
IsDialogMessage
Translate
Dispatch
}

}

pat.
Avatar
drummy
le problème c'est que je n'ai pas encore de boucle OpenGL, juste la fenêtre
OpenGL créée ouverte et des procédures qui chargent des fichiers. ces
chargements sont assez longs.
la seule solution est donc le thread parallèle. comment depuis un second
thread traiter les messages d'un premier thread?

"patrox" a écrit dans le message de
news:40d5838c$0$315$
un thread.

ou alors une technique plus artisanale, cree une fonction
"refreshWindowEvents" que tu appelle le plus possible depuis tes appels
openGL.

void refreshWindowEvents( void )
{
if ( PeekMessage( ... , PM_REMOVE )
{
IsDialogMessage
Translate
Dispatch
}

}

pat.




Avatar
AG
drummy wrote:
la seule solution est donc le thread parallèle. comment depuis un second
thread traiter les messages d'un premier thread?


En lisant les réponses du newsgroups. Par exemples, un thread d'il y a
trois jours, intitulé thread et MFC initié par maxime.

AG.
Avatar
drummy
Sincèrement désolé (je travaille sans les MFC, mais je vais regarder merci)

"AG" a écrit dans le message de
news:40d6922e$0$279$
drummy wrote:
> la seule solution est donc le thread parallèle. comment depuis un second
> thread traiter les messages d'un premier thread?
En lisant les réponses du newsgroups. Par exemples, un thread d'il y a
trois jours, intitulé thread et MFC initié par maxime.

AG.