Suchergebnisse
Suchergebnisse 1-6 von insgesamt 6.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
mir scheint, die Zeichnerei in deinem Paint-Event ist einfach zu aufwändig. bei einer Form-Breite von 500Pix werden alle 30ms 500 Linien gezeichnet, und ebenso viele Rechtecke ausgefüllt - da kommt GDI nicht mehr mit.
-
Dein Wave-Simulator hat vmtl. dasselbe Problem wie dein Sample hier: GDI ist einfach ganz schnell überfordert damit, große Flächen in so schneller Folge neu zu zeichnen, dasses wie eine flüssige Bewegung aussieht.
-
gezieltes Invalidieren des Fadenkreuzes bringt nix. Die beiden Aufrufe fließen zusammen, und neu gezeichnet wird dann das umschließende Rechteck beider Invalidierungen. Und das ist grad im Fall eines Fadenkreuzes die gesamte Control-Fläche. kannst dir auch die Comments von Control mit beweglicher Figur durchlesen (oder auch nicht) - da habich dasselbe geschrieben. Aber immerhin da bringt das was.
-
Zitat von Niko Ortner: „Allerdings werden die beiden Rectangles schön separat invalidiert.“ jo, der Invalidate-Aufruf erfolgt separat. Der ist auch sehr schnell, und beide Aufrufe erfolgen, ehe das nächste Paint-Event feuert. Aber im Paint-Event das übergebene Graphics ist geclipt, und zwar auf das umschließende Rechteck aller zwischenzeitlich eingegangenen Invalidate-Aufrufe. Und dassis leider das ganze Control. kannst ja e.ClipRectangle im Debugfenster ausgeben.
-
Zitat von Niko Ortner: „Was ist der Unterschied zwischen den invalidierten Bereichen und dem Clip-Rectangle des Graphics-Objektes.“ zwischen 2 Paint-Vorgängen können mehrere gezielte Invalidierungen stattfinden. Intern wird der Clip als das umschließende Rechteck aller Invalidierungen berechnet., und dieses Rechteck wird im Paint gezeichnet.
-
Du hast mit SetClip nix zu schaffe, das macht Windows für dich. Und Windows kann nicht jedesmal neu painten, wenn du Invalidate aufrufst - das wäre in anderen Fällen total unperformant, und ist glaub auch technisch nicht möglich (Bildwechselrate und solche sachen). Also werden, wenn sie schnell aufeinander folgen, die Rectangles mehrerer Invalidates zusammengefasst zu einem. Das einzelne Invalidate(rct) gibt ein Rectangle an, und merkt vor, dass bei nächster Gelegenheit neu gezeichnet wird. Und …