Hintergrund Erease

CodeFatal

Erfahrenes Mitglied
Moin moin,

kurze Frage:

Wie kann ich bei Elementen wie CButton etcpp die Hintergrund Erease Funktionalität abschalten:confused:
Ich habe das Problem, das ich die Button in der DrawItem selber zeichne.
Wenn ich nun aber EnableWindow() aufrufe, wird der Hintergrund Ereased und es kommt zu unschönem Geflacker.

Jemand ne Idee was man da noch machen kann? die ON_WM_ERASEBKGND wird bereits richtig verarbeitet... zumindest, so wie es an anderer Stelle richtig ausschaut.

Bräuchte dringend Hilfe. Seh vermutlich den Wald vor lauter Bäumen nicht mehr:(

Gruss Michael
 
Wann kommt es zu geflacker ?
Wie hast du die ON_WM_ERASEBKGND verarbeitet ?

Wenn du RedrawWindow() Benutzt dann lass die Option RDW_ERASE weg
und benutz nur RDW_INVALIDATE| RDW_UPDATENOW.

M.f.G Erik
 
Hi,
mit dem übergebenen CDC Zeiger passiert nichts. Ansonsten wird nur TRUE zurückgeben.

Das ganze passiert nur bei den von mir veränderten Elementen.

Bei Elementen wie CComboBox mach ich nicht. Da wird in der Standardimplementation von Microsoft das irgendwie aufgerufen... eine Direkte Invalidierung wird von mir nicht durchgeführt.

Gruss Michael
 
Flakern die Ständig - oder nur "Kurz"
Bei EnableWindow() sollten nur extrem kurz ein kurz ein wenig flackern.

Achte darauf das du nicht sinnlas ganze flächen füllst und evtl. die Ausgabe puffern.

Ich hab auch etliche Controls abgeleitet aber die flackern nicht wesentlich mehr als die original Windows Dinger - allerdings zeiche ich die auch selber in OnPaint() mit Puffer und so.

Zeig mal bitte deine DrawItem() ^.^°
 
Zuletzt bearbeitet:
Moin moin,

irgendwie krieg ich die Änderungen in diesem Thread nciht mit obwohl ich die Erinnerung per Mail eingeschaltet hab :-(

Egal, zum Thema.

Es wird nur für einen Zeichen Zyklus der Hintergrund gelöscht und mit der entsprechenden System-Farbe gefüllt. Das ganze lässt sich mit dem Debugger wunderbar beobachten.

Da das ganze auf einem Langsamen Device ausgeführt wird ist "kurz" ganz schön lange und deutlich spürbar...

Ein ähnliches Problem besteht wenn ich z.B. Eine ComboBox erstellt habe und die Liste ausgeklappt ist. wenn diese dann wieder eingeklappt wird ist der Hintergrund erstmal gelöscht und mit System Farbe gefüllt. Da ich aber in meiner Anwendung der Bereich definitiv überzeichnet wird, sieht es unschön aus und kostet ne Menge Zeit.

Mir ist da immer noch keine Lösung eingefallen.

Gruss Michael
 
Zurück