Hm, hab jetzt mal den ganzen Code umgebaut soweit, wie bei deinem Beispiel.
Hm jetzt klapps. Es flackert ab und zu aber Double
Eins ist mir aufgefallen. Das du das Bild "anders" zeichnest.
Delphi-Quellcode:
//Du mast das so:
hDCBack := CreateCompatibleDC(
DC);
SelectObject(hDCBack, FBackBitmap.Handle);
BitBlt(
DC, 0, 0, rc.Right, rc.Bottom, hDCBack, 0, 0, SRCCOPY);
DeleteDC(hDCBack);
//Und ich so direkt:
BitBlt(
DC,0,0,ListBoxBild.Width-18,ListBoxBild.Height,ListBoxBild.Canvas.Handle,0,0,SRCCOPY);
Darf ich mal fragen, warum man so macht, wie bei dir?
Und du hast oft
RedrawWindow(hFileList, nil, 0,RDW_FRAME or RDW_INVALIDATE or RDW_UPDATENOW);
drin RDW_INVALIDATE und RDW_UPDATENOW verstehe ich. Nur was macht RDW_FRAME?
EDIT: Irgendwie, hat es bei mir funktioniert, ohne den "Bug", als ich es eingefügt habe.
Und es Fehlt nur ein FillRect, wegen der Füllfrabe der Items.