cs_tdeco
Messages postés53Date d'inscriptiondimanche 23 février 2003StatutMembreDernière intervention27 mai 2005
-
2 janv. 2005 à 05:31
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
5 janv. 2005 à 16:15
Bonjour
En fait, j'ai une boite de dialogue avec plusieurs boutons et une zone ou j'affiche une image bmp. Pour afficher l'image, je procède par la façon suivante:
HWND hBouton = GetDlgItem(hDlg_IHM_MAIN, IDC_IMAGE);
HDC hdc = GetDC(hBouton);
Dessiner_Image(hDlg_IHM_MAIN,hdc,&buffer);
ReleaseDC(hDlg_IHM_MAIN,hdc);
hDlg_IHM_MAIN est ma boite de dialogue principale,
IDC_IMAGE l'identifiant de ma zone d'affichage
Dans la fonction "Dessiner_Image" , j'utilise StretchBlt pour dessiner l'image dans le buffer.
Mon image s'affiche bien. J'appuis sur un bouton de l'IHM, je crée alors une autre boite de dialogue. Lorsque je ferme celle-ci , mon image s'est effacé
cs_tdeco
Messages postés53Date d'inscriptiondimanche 23 février 2003StatutMembreDernière intervention27 mai 2005 5 janv. 2005 à 11:03
Merci de ta réponse, mais je ne pense pas que cela puisse m'aider.
Car en fait mon affichage est commandé par un thread et se fait cycliquement
Je fais:
//Dans mon thread
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 5 janv. 2005 à 16:15
La zone ou tu affiche ton bitmap, met là en tant que bouton ayant le style OWNER_DRAW dans ton dialogue. Au lieu d'appeler Dessiner pour rafrâichir, appelle InvalidateRect sur le bouton, ce qui va générer le message WM_DRAWITEM. Lors du traitement de ce message (après un rafraichissement de ta part ou tu système), dessine ce ce que tu veux en fonction d'un état global (en l'occurence le buffer avec le bitmap)