Bonjour,
Dans mon application MDI, j'ai un "Worker Thread" créé à l'aide de AfxBeginThread (dans InitInstance).
Ce thread est prévu pour envoyer des message qui sont traités dans le MainFrm.
Cependant, on observe un plantage. La méthode utilisée pour envoyer des messages est:
PostMessage(AfxGetMainWnd()->m_hWnd,IDM_MY_MESSAGE,(WPARAM)NULL,(LPARAM)NULL);
J'ai lu qq part sur le web que lorsque AfxGetMainWnd() était appelée dans un worker thread, la méthode retourne NULL.
Par conséquent j'ai ajouté une variable membre au fichier principal (celui qui contient InitInstance), puis la variable est initialisée juste avant la sortie de InitInstance de sorte à sauvegarder un pointeur valide sur fenêtre principale:
pMainWnd=AfxGetMainWnd();
Puis dans le worker thread j'utilise:
PostMessage(theApp.pMainWnd->m_hWnd,(WPARAM)NULL,(LPARAM)NULL);
Cependant après toutes ces modifications, le résultat est le même.
Nota: le problème n'apparaît qu'en mode Release....
Merci de me venir en aide.
Whitebird001
Partager