Ich suche schon länger die Möglichkeit eine Linie,ein Rechteck mit der
Maus flimmerfrei auf den Bildschirm zu zeichnen.
Ich habe eine Lösung gefunden, deren Umsetzung in Profan mir nicht gelingt.(Text zwischen den beiden Smilies)
Zitat:
" ( wg. Guttenberg )
Echtzeit-Ausgabe beim Erstellen und Editieren von Zeichenobjekten
Wenn man zum Beispiel mit der Maus in einem Zeichenprogramm ein geometrisches Objekt (z.B. ein Polygon) auf der Zeichenfläche in Echtzeit von Position A nach Position B verschieben möchte, dann wäre es sinnlos, für jede der Zwischenpositionen, an denen sich die Maus gerade befindet, alles neu zu zeichnen, den Puffer zu füllen und anschließend auszugeben. Hier bedient man sich eines Kniffes. Mit Hilfe des ROP (Raster Operator) kann man mit XOR (exklusives OR) folgendermaßen vorgehen.
:-)Man zeichnet das zu verschiebende Objekt zunächst mit XOR an der alten Stelle noch einmal direkt auf dem Ausgabegerät. Dadurch „verschwindet“ dieses Objekt auf der Ausgabefläche wie von Geisterhand. Nun zeichnet man das Objekt direkt und ohne XOR an die neue Position, so dass es dort wieder sichtbar wird. Das wiederholt man bei jeder einzelnen Mausbewegung erneut, so dass innerhalb einer Sekunde durchaus 10-50 Positionsveränderungen dargestellt werden können. Das träge Auge nimmt dies als ruckelfreien und fließenden Vorgang ohne Flimmern wahr.:-) Erst am Schluss wird der Puffer komplett neu gefüllt und ausgegeben. Diese Methode des nicht beständigen, direkten Zeichnens auf ein Device nennt man auch „floating drawing“.
"
Bei Microsoft findet man folgendes:
For a color device, GDI uses RGB values to represent the colors of the pen and the destination. An RGB color value is a long integer that contains a red, a green, and a blue color field, each specifying the intensity of the specified color. Intensities range from 0 through 255. The values are packed in the three low-order bytes of the long integer. The color of a pen is always a solid color, but the color of the destination may be a mixture of any two or three colors. If an application attempts to draw with a white pen on a blue destination by using the available binary raster operations, the following results occur.
Raster operation Result
R2_BLACK Visible black line
R2_COPYPEN Visible white line
R2_MASKNOTPEN Visible black line
R2_MASKPEN Invisible blue line
R2_MASKPENNOT Visible red/green line
R2_MERGENOTPEN Invisible blue line
R2_MERGEPEN Visible white line
R2_MERGEPENNOT Visible white line
R2_NOP Invisible blue line
R2_NOT Visible red/green line
R2_NOTCOPYPEN Visible black line
R2_NOTMASKPEN Visible red/green line
R2_NOTMERGEPEN Visible black line
R2_NOTXORPEN Invisible blue line
R2_WHITE Visible white line
R2_XORPEN Visible red/green line
Kann mir jemand ein Beispiel machen, indem diese GDI32 Funktionen
(Rasteroperationen XOR) benutzt werden.