Bei Mausbewegung Linie (Fadenkreuz) zeichnen
-
Wozu gibts Klassen^^
Hab erst vor kurzem nen Bildeditor machen müssen ähnlich wie Paint. Dort gibts auch für jedes Objekt diese "Gummibandvorschau". Am besten für jeden Typ eine Klasse, diese erben von einer gemeinsamen Basisklasse und die lässt man dann die Zeichenarbeit machen. Is übersichtlich, lässt sich gut erweitern usw. ... halt OOP
-
OOP ist was für weicheier
-
@Palleon: kannst du bitte den MSDN - Link geben? Finde da nichts, wußte aber nicht, dass das so auch gehen kann. Würde mich aber interessieren.
-
*hum* habs in der Offline-MSDN gelesen, frag mich jetzt aber nicht mehr wie der Titel hieß^^ Hilf das?
int mode = pDC->GetROP2(); pDC->SetROP2(R2_NOTXORPEN); pDC->MoveTo(firstPoint); pDC->LineTo(secondPoint); pDC->SetROP2(mode);
first- und secondPoint sind CPoints hier. Damit zeichnest du im logischen Modus. Beim zweiten mal zeichen hast du wieder den alten Inhalt der betroffenen Pixel.
HAHA ich bin gut^^ hab was gefunden
http://support.microsoft.com/kb/q135865/
-
Danke, werde es mir anschauen.
-
habs aufprobiert,
bei mir wird dabei jedoch der Hintergrund (bestehende Zeichnung) gelöscht !
Mach ich da was falsch?
-
AnTri schrieb:
habs aufprobiert,
bei mir wird dabei jedoch der Hintergrund (bestehende Zeichnung) gelöscht !
Mach ich da was falsch?joar machst du wohl^^
Beim zweiten mal Zeichnen musst du auch dieselben Koordinaten haben, wie mein ersten mal. Zeig doch mal deinen Code.
-
Danke,
ich hab ausversehen beim 2. mal die Koordinaten verwechselt. Funktioniert jetzt einfach OPTIMAL.
Vielen Dank für Eure Hilfe!
Kann mir noch jemand erklären wie das eigentlich geht, merkt sich der Context den Pixel der vor dem Zeichen da war?
-
Der merkt sich die alten Pixel nicht, das klappt nur durch geeignete Bit-Operationen:
Zeichnen:
Pnz=Paz XOR Pl
(Pnz-Pixel nach Zeichnen, Paz-Pixel vor Zeichnen, Pl-Pixel der Linie)
Löschen:
Pnc=Pac XOR Pl
(Pnc-Pixel nach Löschen (clear),...)
-> insgesamt:
Pnc=Pac XOR Pl =Pnz XOR Pl =Paz XOR Pl XOR Pl =Paz
-
Genau, das ist der Witz an der Sache, das nichts gespeichert wird. Dadurch flackert auch nichts.
Das is halt einfach eine mathematische Operation, die beim 2. Anwenden den Ausgangszustand wieder herstellt.
-
suuuuuper ....
Danke!