Bonjour à tous,
je vais commencer par détailler mon contexte visual C++/ MFC et ensuite vous exposez mon problème. Je vais faire mon maximum pour être claire
Je travaille sur un prototype d'application avec une fenêtre de type CWnd/OpenGL dans une architecture CWinApp / CMainFrame classique, sans SDI ou MDI (donc pas d'objet dérivé de CView).
Cette application assure également de la reconnaissance de geste (effectué avec un bras à retour d'effort) et cette reconnaissance de geste est assuré à la fréquence graphique puisqu' effectuée dans le thread graphique.
Je veux lancer l'impression de ma fenêtre CWnd/OpenGL après avoir effectué un geste précis reconnu dans mon thread graphique.
J'ai décidé pour cela d'utiliser le coupleavec un define de WM_PRINT_GEO à partir WM_USER.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PostMessage(AfxGetMainWnd()->m_hWnd ,WM_PRINT_GEO,0,0)/ ON_MESSAGE(WM_PRINT_GEO,OnPrint)
Je veux donc depuis mon thread graphique, appeler la fonction d'impression implémenté dans le CMainFrame.
Ca "marchouille" mais j'ai des rendus bizarres d'impression, la fenêtre (ou active area de ma CWnd pour être précise) OpenGL imprimée est assez aléatoire avec parfois les dessins du geste assurant l'impression ou alors un cadre noir ou une portion d'écran noir au lieu d'être blanc......
En fait, je pense que le fait de poster un message pour le run windows depuis le thread graphique perturbe le thread graphique et j'imprime un résultat assez aléatoire.
Qu'en pensez-vous?
Puis-je procéder autrement pour lancer l'impression de ma fenêtre qu'avec un PostMessage?
En vous remerciant par avance pour vos suggestions,
bonne journée.
Partager