Forum: Programmieren allgemein
by MicMic,
2. Feb 2021
@Incocnito Mit WM_SETREDRAW kann ich was tricksen, jedoch brauche ich ein Event bevor der ItemIndex sich ändert. Ein Event was erst danach gefeuert wird, gibt es. Davor leider nicht. Das bedeutet, ich muss das Tasten-Event löschen und den zukünftigen ItemIndex selbst berechnen, ob sich hier die Listbox scrollt. Dann kann ich WM_SETREDRAW entsprechend davor setzen. Bei den Scrollleisten selbst,...
Forum: Programmieren allgemein
by MicMic,
2. Feb 2021
Noch mal Nachtrag ;-)
Ohne "WS_EX_COMPOSITED" kann man das Neuzeichnen durch "WM_ERASEBKGND" abschalten. Hier wären noch ein paar Dinge zu erledigen aber das schaut auch nur gut aus, wenn nicht so viele Spalten und Zeilen zur Ansicht kommen. Ist die ListBox größer (hier dann mehr Spalten und Zeilen), dann ist das Scrollverhalten hier in der Optik überhaupt nicht schön. Ich erinnere mich, dass...
Forum: Programmieren allgemein
by MicMic,
2. Feb 2021
Nachtrag: Das Verhalten tritt in Verbindung mit "WS_EX_COMPOSITED" auf, wie ich eben gesehen habe. Ohne diesen Wert geht DrawItem nicht immer komplett durch (was ja gut ist) aber wenn sich TopIndex ändert (also gescrollt wird), dann flackert es. Also es wird erst gelöscht. Da bei mir sehr viel passiert, flackert es natürlich recht arg. Deswegen würde ich gerne WS_EX_COMPOSITED nutzen.
Forum: Programmieren allgemein
by MicMic,
2. Feb 2021
Hallo,
ich schreibe das mal hier rein, da ich kein Source liefern kann.
Meine ListBox ist ziemlich angepasst und das Zeichnen erledige ich selbst in DrawItem. Da passiert recht viel aber ich probiere es mal einfach in einem Beispiel zu erklären. 20 Einträge. Alle haben einen blauen Hintergrund und die Text-Farbe ist Gelb. Die aktive Zeile hat einen schwarzen Hintergrund. So sieht man, welche...