Pb SetPixel [Résolu]

Signaler
Messages postés
30
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
20 octobre 2009
-
Messages postés
30
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
20 octobre 2009
-
Bonjour,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>






 






J’ai un soucis avec SetPixel, le programme se déroule bien, mais ça ne dessine rien !






 






Je code en C sous Visual C++ 2008.






 






Avec ce code, j’ai le handle d’une fenêtre, le traitement récupère le hdc, puis la couleur d’un pixel et par une boucle for dessine sur la fenêtre un gros carré de la couleur du pixel qu’il a récupéré.   






 






Tout se passe bien.





Le hdc = E5012266




Les couleurs du pixel sont cohérentes avec l’image de la fenêtre: 112,66,43 (couleur brun-rouge clair).





Mais ça ne dessine rien, aucun gros carré brun-rouge clair sur le bleu de l'image!





Pourtant la position du carré devrait le placer au centre de l’image.






 






Help please…………






 






Code :






 







   

hdc = GetDC(handle);






    printf("hdc %X\n\n", hdc);






    cursor.x = 250;






    cursor.y = 110;






    color = GetPixel(hdc, cursor.x, cursor.y);






 







    ReleaseDC((*table).handle,hdc);






 







    R = GetRValue(color);//->valeur du rouge (0-255)






   

G = GetGValue(color);//->valeur du vert (0-255)






    B = GetBValue(color);//->valeur du bleu (0-255)






   

printf("%i,%i,%i\n", R,G,B);






 







    color = 250;






     
for (t = 0; t <= 200000; t++)






      {






           
for (x = 250; x <= 350; x ++)






     
   

{






           
   
for (y = 100; y <= 200; y ++)






           
    {






                 
    SetPixel(hdc, x, y, color);






           
    }






     
    }





      }

5 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
12
Salut,
Tu appelle ReleaseDC() avant SetPixel() ainsi ton HDC ne sera plus valide. ReleaseDC() doit être appelée quand on a plus besoin du HDC.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
12
gamemonde >> SetPixel() peut être utilisée en mode console quand il s'agit du HDC d'une fenêtre appartenant à une autre application. Il parait que c'est le cas ici.
Messages postés
338
Date d'inscription
samedi 9 août 2003
Statut
Membre
Dernière intervention
9 juillet 2011
2
SetPixel fonctionne pas en mode console non plus
Messages postés
30
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
20 octobre 2009

Merci pour vos réponses, j'essaye ce soir en mettant ReleaseDC() après SetPixel.
Messages postés
30
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
20 octobre 2009

ça marche ! ! ! !  Merci !