setpixel problem. farbe schwarz anstatt bunt.
-
Soweit funktioniert auch alles. es geht um die zeilen 23&24. wenn ich das aus zeile 24 nehme, malt er mir auch schöne blaue senkrechte striche. nehme ich das aus zeile 23 sind die slle schwarz, aber eigentlich müssten die doch farbig sein, jenachdem welcher Buchstabe gespeichert ist. weiß einer warum das so net klappt?
{ COLORREF A = RGB(0,0,255); COLORREF T = RGB(0,255,0); COLORREF C = RGB(255,0,0); COLORREF G = RGB(0,255,255); void senkrecht(HDC, int, int, int, COLORREF); int y(double),x(double),i; char *dna; dna = (char *) malloc (10 * sizeof(char)); dna[0]='T'; dna[1]='A'; dna[2]='A'; dna[3]='C'; dna[4]='G'; dna[5]='\0'; i=0; do { senkrecht(hDC,x(i),y(5),y(6),dna[i]); //senkrecht(hDC,x(i),y(5),y(6),A); i++; }while(i<5); } // Funktionen int y(double y) { return (int)(y * (-10) + 250); // koordinate * (-)! Streckung/Stauchung + Achsenverschiebung } int x(double x) { return (int)(x * 10 + 100); // koordinate * Streckung/Stauchung + Achsenverschiebung } void senkrecht(HDC hdc, int x, int ya, int ye, COLORREF farbe) { int i=0, swap=0; if(ye < ya) { swap = ya; ya = ye; ye = swap; } for(i=ya;i<=ye;i++) { SetPixel(hdc,x,i,farbe); } }
-
Du übergibst einmal einen char, und einmal diese COLORREF-struct.
Na, siehst du den Unterschied?
-
ja seh ich jetzt.
ich habe es nun auf ... geändert und nun klappt es.void senkrecht(HDC hdc, int x, int ya, int ye, COLORREF farbe) { if (farbe == 'A') farbe = RGB(0,0,255); if (farbe == 'T') farbe = RGB(0,255,0); if (farbe == 'C') farbe = RGB(255,0,0); if (farbe == 'G') farbe = RGB(0,255,255); int i=0, swap=0; if(ye < ya) { swap = ya; ya = ye; ye = swap; } for(i=ya;i<=ye;i++) { SetPixel(hdc,x,i,farbe); } }
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.