CreateComp. - DC u. BitMap oder PictureBox

30/11/2009 - 11:39 von Heinz-Mario Frühbeis | Report spam
Hallo!

Es geht um's DoubleBuffering.
Diese DoubleBuffering möchte ich über die gesamte Laufzeit ds Programms
erstellen.

Also zum Prog.Start:
CretaeCompatibleBitmap
CreateCompatibleDC

oder :

set p as PictureBox
Parent.controls.add(PBox)

Und zum Prog.ShutDown

DeleteObject
DeleteDC

oder :

Parent.Controls.Remove p.Name

Das kann durchaus mal 1000 oder sogar 5000 mal verlangt sein im Programm.

Wie ist das mir der Speicherreservierung ?
Wie ist das mit der Schnelligkeit ?
Kommt man dann VB bzw. Windows mit "AutoRedraw" für andere (viele) P.Box's
in die Quere?

Ist es besser DoubleBuffering mit CreateCompatible zu erstellen, oder eine
P.Box zu laden?

viele Grüße
Heinz-Mario
 

Lesen sie die antworten

#1 Thorsten Albers
30/11/2009 - 12:57 | Warnen spam
Heinz-Mario Frühbeis schrieb im Beitrag
...
Ist es besser DoubleBuffering mit CreateCompatible zu erstellen, oder


eine
P.Box zu laden?



- Eine PictureBox verbraucht - möglicherweise erheblich - mehr Ressourcen
als ein Speichergeràtekontext.
- Wenn nicht mit Windows API-Funktionen und dem DC der PictureBox
gearbeitet wird, dann dürfte die Arbeit mit der PictureBox ein gutes Stück
langsamer sein. Irgendwo im MSDN sagt MS auch noch, daß 'normale'
Geràtekontexte (PictureBox.hDC) langsamer seien als Speichergeràtekontexte.

Ich weiß ja nicht, was Du machen möchtest, aber: Je nach Aufgabe ist es
nicht unbedingt nötig, auch eine große Anzahl von Speichergeràtekontexten
zu erstellen. In der Regel reichen einige wenige, in welche dann die
kompatiblen Bitmaps per SelectObject() je nach Bedarf selektiert werden.
Das spart Ressourcen und verbraucht nur unerheblich mehr Zeit.

Thorsten Albers

albers (a) uni-freiburg.de

Ähnliche fragen