Floodfill für kleines Zeichenprogramm

Also erstmal Danke für eure Mühen ! Ja ich bleib gern bei MFC ;)

ich habe jetzt folgenden Code :

Code:
 CDC memDC; 
COLORREF t = RGB(255, 255, 255);

memDC.CreateCompatibleDC(&dc);
CBitmap bild;
bild.CreateCompatibleBitmap(&dc, x_size, y_size);

memDC.SelectObject(&pic); 

HBRUSH hbrush = CreateSolidBrush(RGB(0, 0, 255));
memDC.SelectObject(hbrush);

memDC.BitBlt(0, 0, x_size, y_size, &dc, x_off, y_off, SRCCOPY);
memDC.ExtFloodFill(10, 10, t, FLOODFILLSURFACE);
dc.BitBlt(x_off, y_off, x_size, y_size, &memDC, 0, 0, SRCCOPY);

DeleteObject(hbrush);

Leider gehts immer noch ned :(

die Variablen x_off und y_off geben nur den Offset meines Zeichenbereiches an, da
dieser Zentriert im Fenster liegt und nicht bei (0,0) beginnt.
Der Code scheint mir plausibel und müsste doch eigentlich gehen, ich bin bald
am verzweifeln :/
 
ich glaube den Fehler hast du per strg+c strg+v hingekrigt:
Code:
memDC.SelectObject(&pic);
//sollte nach dem restlichen Code sein:
memDC.SelectObject(&bild);
wozu eigenlich die Zeile
CPaintDC dc(...
mach doch einfach das:
ganz am Anfang
Code:
CDC *dc = this->GetDC();
in der mitte ein Paar -> einfuegen, und ein paar & loeschen
ganz am Ende
Code:
this->ReleaseDC(dc);
----
falls du ganz bei MFC bleiben willst, kannst du ja statt HBRUSH nochmal CBrush verwenden ;)
Code:
CBrush brush;
brush.CreateSolidBrush(RGB(0, 0, 255));
memDC.SelectObject(brush);
----
Aufpassen bei ExtFloodFill() falls Farbe falsch, malt die Funktion einfach nix. Zweifelsweise ab und zu FloodFill() ausprobieren um den Unterschied zu spueren.
 
Oh man na klar der Fehler mit pic / bild. Hey man es geht Er füllt alles brav genau so wie es sein soll. Weiß gar ned wie ich dir danken kann :) :)

Würdest ned von so weit her kommen würd ich dich ja auf nen kühles Blondes einladen ;)

Also nochmal vielen Dank !

Gruß
paddy
 

Neue Beiträge

Zurück