theoretisch richtige funktion? ( GetPixel() )



  • kurz & knapp:
    mein progg springt in die funktion und soll erst dann wieder raus,
    wenn sich der pixel an einer gewissen stelle (int x/y) änbdert.

    nur es geht nich 😞
    (vorschläge, alternativen, hilfe oder feedback?)

    void mypixelchange(int x,  int y) {
    	bool truy = true;
    	HDC dc = GetDC(0);
    	COLORREF tmp;
    
    		while(truy == true) {
    		tmp = GetPixel(dc, x, y);
    		Sleep(2000);
    		if(tmp == GetPixel(dc, x, y))
    			truy = false;
    		};	//end while
    

    -DANKE-



  • Erste Frage: Wie äußert sich "geht nicht"?

    Zweite Frage: In welchem Zusammenhang hast du die Funktion eingesetzt?

    (Ich würde ja das "tmp=GetPixel(dc,x,y);" aus der Schleife herausnehmen, aber ich glaube nicht, daß das dein Problem beheben würde)



  • probier's so:

    void mypixelchange (int x,  int y) 
    {
        HDC dc = GetDC(0);
        COLORREF tmp;
    
        tmp = GetPixel(dc, x, y);
    
        for(;;) 
        {
            if (GetPixel(dc, x, y) != tmp)
               return;
            Sleep(100);
        }
    }
    


  • Chaoz-Coder schrieb:

    kurz & knapp:
    mein progg springt in die funktion und soll erst dann wieder raus,
    wenn sich der pixel an einer gewissen stelle (int x/y) änbdert.

    nur es geht nich 😞
    (vorschläge, alternativen, hilfe oder feedback?)

    void mypixelchange(int x,  int y) {
    	bool truy = true;
    	HDC dc = GetDC(0);
    	COLORREF tmp;
    
    		while(truy == true) {
    		tmp = GetPixel(dc, x, y); // bei jedem durchlauf erfolgt eine neue zuweisung der pixelfarbe
    		Sleep(2000);
    		if(tmp == GetPixel(dc, x, y)) //du verläßt die schleife nur wenn sich der pixel innerhalb von 2sec NICHT ändert ;)
    			truy = false;
    		};	//end while
    

    -DANKE-

    wenn du die farbe zu beginn der funktion immer wieder abfragen willst muß du die zuweisung vor der schleife machen...

    und natürlich die "if" ändern... 😉

    void mypixelchange(int x,  int y) {
    	bool truy = true;
    	HDC dc = GetDC(0);
    	COLORREF tmp;
    
    		tmp = GetPixel(dc, x, y);
    		while(truy == true) {
    		    Sleep(2000);
    		    if(tmp != GetPixel(dc, x, y)) 
    			truy = false;
    		};	//end while
    

    mfg



  • mein gott...
    danke schandmaul
    sowas übersieht man einfach zu leicht 😉

    THX


Anmelden zum Antworten