begin process at 2012 02 13 00:59:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

Probléme avec la fonction SetPixel de l'api windows


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

Probléme avec la fonction SetPixel de l'api windows

dimanche 21 décembre 2008 à 14:35:47 | Probléme avec la fonction SetPixel de l'api windows

Mareck666

Salut Salut tous le monde si je vien poster sur ce forum c'est parce que je n'arrive pas a trouver des explication a un mystérieux bug de la fonction setpixel de windows je m'explique : tous d'abord je souhaite realiser un programme qui puisse dessiner sur le bureau de windows, et donc pour cela j'utilise la fonction GetDC(0) afin d'obtenir le device contexte du bureau, puis aprés je procéde via une boucle a la coloration pixel par pixel du bureau, mai cest la qu'et le probléme, au lieu de me mettre tous le bureau en blanc seulement 3 "portions" de l'écran sont peinte une a gauche l'autre au centre la derniére a droite et il me laisse les autres normal ... Voici le code (simplifié au maximum): _____________________________________________________________________________________ #include #include #include #include int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { int x0=0; int y0=0x0; HDC x; // stockera notre device context x =GetDC(0); while(1) { while(y0 < 900) { while(x0 != (1200) ) { SetPixel(x,x0,y0,0xFFFFFF); x0+=1; } y0+=1; x0=0; } y0=0x0; // on repart a zero en redessinant l'écran en blanc x0=0x0; } } _______________________________________________________________________________________ Je vous saurez trés reconnaissant de m'éclairer sur ce petit bug (qui n'en ai peut etre pas un, et qui vien du fait que je programme comme un pied ) Merci d'avance
dimanche 21 décembre 2008 à 14:40:26 | Re : Probléme avec la fonction SetPixel de l'api windows

Mareck666

excusez moi je sais pas pourquoi les retours a la ligne ont était supprimés (je suis pas doué) -_-
dimanche 21 décembre 2008 à 23:01:34 | Re : Probléme avec la fonction SetPixel de l'api windows

racpp

Administrateur CodeS-SourceS
Salut,
Je viens de tester ton petit code. Tout l'écran devient blanc. Ta boucle infinie prend 99% du temps processeur. Essaie de mettre une image pour illustrer ton problème.
dimanche 21 décembre 2008 à 23:21:58 | Re : Probléme avec la fonction SetPixel de l'api windows

Mareck666

tient voici une screenshot du rendu de mon programme (sous vista) : http://artemis-ai.ifrance.com/sc.jpg comme ont peut y voir seulement 3 portions de l'écran sont remplis de blanc (je sais pr la boucle infinie mé cété pour l'exemple)
lundi 22 décembre 2008 à 00:45:13 | Re : Probléme avec la fonction SetPixel de l'api windows

racpp

Administrateur CodeS-SourceS
Je viens de tester sur Vista. Aucun problème.

lundi 22 décembre 2008 à 00:48:43 | Re : Probléme avec la fonction SetPixel de l'api windows

Mareck666

je comprend vrément pas ... je suis dénué la, et bien c'est mon ordis qu'est buggé...

merci quand même
lundi 22 décembre 2008 à 13:14:38 | Re : Probléme avec la fonction SetPixel de l'api windows

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Faudrait appeler ReleaseDC(0, x) après avoir utilisé un x = GetDC(0).

Mais ça va pas corriger le problème.

Tu as essayé de désactiver aero ou je sais pas trop quoi ? Changé le thème du bureau (Viré l'image d'arrière plan...) ?
dimanche 11 janvier 2009 à 17:00:20 | Re : Probléme avec la fonction SetPixel de l'api windows

Kian_ix

Mareck666> jai exactement le meme probleme que toi... ce dont je suis sur à 100% c'est ce bug du SetPixel() est lié à windows vista, car j'ai testé sur plusieurs pc sous XP et aucun ne reproduit ce bug, jai de plus désactivé les styles aero de vista mais le bug continue, que ce soit dans HWND_DESKTOP, ou dans une fenetre normale... grand mystère
dimanche 11 janvier 2009 à 17:10:56 | Re : Probléme avec la fonction SetPixel de l'api windows

Kian_ix

la seule solution que j'ai trouvé:

int SetPixelAlt(HDC hdc, int x, int y, int color) {
RECT rct;

rct.left = x;
rct.right = x+1;

rct.top = y;
rct.bottom = y+1;

FillRect(hdc, &rct, CreateSolidBrush(color));
return 0;
}
dimanche 5 avril 2009 à 18:35:36 | Re : Probléme avec la fonction SetPixel de l'api windows

Kian_ix

rajout d'un petit détail sur SetPixelAlt: un nombre d'appel à CreateSolidBrush supérieur à 100 provoque des réactions bizarres dans le programme, déclarer plutot le HBRUSH en global, et l'initialiser dans le winmain, et la plus de pb :)

1 2

Cette discussion est classée dans : fonction, int, windows, bureau, include


Répondre à ce message

Sujets en rapport avec ce message

Urgent : Pb include windows 98 [ par krovomite ] Bonjour je voudrais savoir quel doit etre l'include a mettre sous vc++, pour windows 98, concernant la fonction CopyFile,car sous win2K, la fonction c Help, DevC++ fonction retournant un float, résultat très étrange... [ par yom007 ] Bonjour,   je travaille sous devC++ et là c'est l'incompréhension, peut-etre qu'une ame charitable pourra venir à mon secours...J'ai reussi à isoler m Appel d'une fonction contenue dans une dll [ par ybuchheit ] Bonjour, je souhaiterais appeler une fonction contenue dans une dll. Je n'ai pas le source de cette dll, le seul fichier dont je dispose est le .dll Probleme de recursivite [ par Anysse ] Salut, je n arrive pas a comprendre le pourquoi de ce que le programme suivant renvoie : #include #include #include void recur (int, int);</FO MinGW et TransparentBlt() [ par divadav ] Hello tout le monde !!Voilà, je suis plutôt un développeur Delphi, mais vu que je reprends une formation cette année, je me replonge dans le C/C++. Et convertir pointeur int* en reference int& ??? je fais quoi ? [ par equimose ] j'ai une fonction qui prend comme parametre une CMyLigne & ABet j'ai besoin d'envoyer a cette fonction un pointeur sur une CMyLigne * pLigne !c'est po Pb avec Round...? [ par Topsyko ] Bonjour,J'ai créé une classe pour calculer l'histogramme d'une image, et dans une fonction j'utilise la fonction de math.h Round, et j'ai cette erreur probleme de dll [ par lamoueste ] j'ai un probleme avec ma dll : il s'agit d'une fonction qui doit lance une fenetre (dialog box ) en modal mais j'ai une "assertion failed" :( et je ne vecteurs 3D [ par nonocpp ] #include #include #include   using namespace std;  int main(void){ int i,k,j; ofstream arno; vector*>*& strstr() avec int [ par nashoy ] Bonsoir,mon problème est le suivant :j'aimerais utiliser la fonction strstr() avec des variables int , et forcément il râle .. j'ai essayé de faire st


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 0,421 sec (3)

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