Pb SetPixel

Résolu
Lustuc Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 20 octobre 2009 - 16 sept. 2008 à 22:57
Lustuc Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 20 octobre 2009 - 17 sept. 2008 à 23:11
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

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
16 sept. 2008 à 23:32
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.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
17 sept. 2008 à 00:42
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.
gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
17 sept. 2008 à 00:13
SetPixel fonctionne pas en mode console non plus
Lustuc Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 20 octobre 2009
17 sept. 2008 à 11:21
Merci pour vos réponses, j'essaye ce soir en mettant ReleaseDC() après SetPixel.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lustuc Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 20 octobre 2009
17 sept. 2008 à 23:11
ça marche ! ! ! !  Merci !
Rejoignez-nous