Visual Basic 6

Neuzeichnen von Steuerelementen steuern

Vom Kampf gegen das Flackern

Füllt man mit einer Prozedur z.B. aus einer Datenbank eine große Menge Daten in eine ListView, dann wird man feststellen, dass das Steuerelement während die Prozedur durchläuft unnatürlich flackert. Ursache hierfür ist natürlich, dass das Control nach jedem Einfügen neu gezeichnet wird. Da hilft auch die Form-Eigenschaft AutoRedraw nicht viel. Es ist einfach unansehnlich.

Entweder man blendet das Steuerelement während des Vorgangs einfach aus, was auch nicht so nett aussieht, oder man greift auf eine API-Funktion zurück: LockWindowUpdate.

Beispiel:

Deklarationen

Private Declare Function LockWindowUpdate Lib "user32" ( _
   ByVal hwndLock As Long) As Long

Prozedur

Private Function FillListView()

   Dim i As Long

   'Die Aktualisierung des TreeView-Fensters unterdrücken
   LockWindowUpdate Me.ListView1.hWnd

   'Neue Einträge anlegen
   With Me.ListView1
      For i = 1 To 5000
         .ListItems.Add , , "Eintrag " &
i
      Next i
   End With

   'Die Aktualisierung des TreeView-Fensters wieder zulassen
   LockWindowUpdate 0

End Function
kick it on dotnet-kicks.de AddThis Trackback-Url...

Schlagworte

Keine Kommentare bislang...

Dein Kommentar hierzu...


Kommentar-Feed für diesen Beitrag
Gravatare werden unterstützt .:. eMail-Adressen werden nicht veröffentlicht
 

RSS-Feed

Die URL des Standard-Newsfeed von zerbit.de lautet:

http://www.zerbit.de/rssfeed.aspx

Login


 

 

Statistik



kürzlich kommentiert

Artikel 23

  • Datum: 11.04.2005
    Kategorie: Visual Basic 6
    Zugriffe: 1.514
    Kommentare: 0
    Trackbacks: 0

Letzte Beiträge

Kategorien

Buttons & More

Blog-Roll

Banner Piraten-Partei