T_Mehdi
Messages postés294Date d'inscriptionsamedi 5 février 2005StatutMembreDernière intervention24 juillet 2015
-
30 mai 2005 à 15:01
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
31 mai 2005 à 17:51
salut a tous .
bon j'ai realiser une fonction qui permet douvrir des fichier bmp et les affichier sur un hwnd preci.
le prob est que quand je reduit ou je cache la fenetre et je le reaffiche l'image ce supprime automatiquement de la fenetre.
<!--c1-->
CODE, ----
<!--ec1-->
int Load_Bmp(HWND WinHandle,char* File);
struct BMP_INFO {
int height;
int width;
HBITMAP hbmp;
int bitperpixel;
};
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 30 mai 2005 à 15:34
Bah oui tes SetPixel/GetPixel sont à faire dans le WM_PAINT de la fenêtre
Par contre, la méthode n'est pas bonne, tu devrais créer une HBITMAP,
la sélectionner dans un DC mémoire (tu le fais une seule fois) puis
dans WM_PAINT utiliser BitBlt, c'est beaucoup plus rapide.
PS: un DC obtenu avec getDC est détruit avec ReleaseDC et non DeleteDC
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 30 mai 2005 à 19:25
En resumé ton code ne marche qu'une fois !!
Quand la fentre est reactualisé ton code n'est pas reexecuté
Il devrait etre dans le message WM_PAINT ( a chaque affichage ou reactualisation de ta fentre c le message a traiter)
Ensuite tu devrait plutot creer UN seul HBITMAP ( et une seule fois)
dans WM_CREATE par exemple et c'est lui que tu reaaffiche dans le
message WM_PAINT pour ne pas avoir a tout refaire a chaque fois.
Tu as une raison particuliere pour utiliser setpixel plutot que BitBlt ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 30 mai 2005 à 19:41
[auteurdetail.aspx?ID=255292 SnOOpss]> Oui, si tu
ne veux pas utiliser BeginPaint, il faut au moins faire
ValidateRect(hWnd, 0), sinon le message WM_PAINT va continuer à arriver
sans arrêt.
Et puis LoadBitmap donne un HBITMAP, pas besoin d'appeler donc GetObject.
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 31 mai 2005 à 17:51
oui [auteurdetail.aspx?ID=19734 vecchio56] en fait
j'ai vu qu'il y avait pas mal d erreur moi meme en fait c'etait une de
mes vielles sources que j'ai simplement copier/coller mais par contre
le coup du ReleaseDC je crois que je fait encore l erreur et ca
m'etonne que le prog ne plante pas au bout d un moment (surtout dans
les boucles) si les DC ne sont jamais libérés!!