begin process at 2010 02 10 10:31:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Pb SetPixel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb SetPixel

mardi 16 septembre 2008 à 22:57:07 | Pb SetPixel

Lustuc

Bonjour,

 

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);

                }

          }

      }
mardi 16 septembre 2008 à 23:32:41 | Re : Pb SetPixel

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
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.

mercredi 17 septembre 2008 à 00:13:33 | Re : Pb SetPixel

gamemonde

Membre Club
SetPixel fonctionne pas en mode console non plus
mercredi 17 septembre 2008 à 00:42:28 | Re : Pb SetPixel

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
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.

mercredi 17 septembre 2008 à 11:21:45 | Re : Pb SetPixel

Lustuc

Merci pour vos réponses, j'essaye ce soir en mettant ReleaseDC() après SetPixel.
mercredi 17 septembre 2008 à 23:11:20 | Re : Pb SetPixel

Lustuc

ça marche ! ! ! !  Merci !


Cette discussion est classée dans : for, hdc, color, cursor, setpixel


Répondre à ce message

Sujets en rapport avec ce message

SetPixel & visual C++ [ par Lustuc ] Bonjour,je recontre un problème avec SetPixel sous Visual C++ :gdi32.lib : fatal error LNK1127: bibliothèque endommagée<font face="Cour Utilisation concrete de setbkcolor [ par dread ] J'ai mis le code suivant dans WM_INITDIALOG: HDC hdc; COLORREF color; color = RGB(12,12,12); hdc = GetDC(hwnd); SetBkColor(hdc,co Comment utiliser SetPixel dans ma DLL ? [ par YoYoDev21 ] Bonjour,Je développe une DLL en C afin d'accélérer certain traitement fait dans un programme VB6.Entre autre, je voudrais que la DLL remplisse elle mê SetPixel(hdc,i,j,RGB..) peut-on utiliser autre chose que RGB [ par izle ] IzLe,la coloration en RGB n'est pas vraiment suffisante avec le type d'image que je produit, j'aimerais soit ajouter un 4ième paramètre de luminosité SetTextColor(HDC,COLORREF); [ par Xs ] salut !j'ai un probleme avec cette fonction que j'ai rencontré par hasard : elle ne marche pas. Je la compile correctement mais il ny'a a aucun effet imprimer une boite de dialogue en vc++ [ par f1cobra ] J'ai un probleme d'assertion en essayant d'imprimer une boite de dialogue Code: void CDialogueReservation::OnFilePrint() { // TODO: Add your command h Probleme rand() et for [ par vanpet ] je suis nouveau en C++ (je migre de VB6) et il y a quelques petites choses que l'aide de Microsoft ne parvient pas a me faire comprendre... (pourquoi La boucle FOR [ par C++ ] Ou est l erreur svp :for (int i=0;i MessageBox (i); Redessiner le Bureau [ par ZoB ] SalutDans un prog j'affiche le papierpeint sur l'ecran a l'aide de : HDC hdc = CreateDC("DISPLAY",0,0,0); PaintDesktop(hdc);Quand je quitte l'applica Redessiner le Bureau [ par ZoB ] SalutDans un prog j'affiche le papierpeint sur l'ecran a l'aide de : HDC hdc = CreateDC("DISPLAY",0,0,0); PaintDesktop(hdc);Quand je quitte l'applica


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,087 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales