TabControl flickering
-
Hallo,
das allseits beliebte Thema...
Ich habe mein Hauptfenster in zwei kleinere Fenster via Childs unterteilt. (rechts & links) Das linke ist ein ganz normales, das rechte habe ich als Tab Control erstellt. Um dieses Flackern zu vermeiden habe ich schonmal die WM_ERASEBKGND-Nachricht im Hauptfenster aussortiert.
Allerdings beeinflusst das das Tab Control nicht. Wenn ich das Fenster verkleinere/vergrößere taucht das Flickering beim Tab Control auf.
Deshalb habe ich es folgendermaßen versucht zu lösen: Ich habe das Control erstellt und gesubclasst. In der neuen WndProc habe ich die WM_ERASEBKGND-Nachricht abgefangen und 1 returned. Aber leider funktioniert es nicht. Anscheinend wird der Hintergrund bei der WM_PAINT-Nachricht gelöscht.
Weiß jemand Rat?
-
Benutzt du CS_HREDRAW / CS_VREDRAW ?
-
Das kann ich dir ehrlich gesagt nicht sagen, da es sich ja um eine Standard-Class handelt.
TabControlHandle=CreateWindow( WC_TABCONTROL, "", WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | CCS_NODIVIDER, Rect.right-PanelWidth, Height, PanelWidth , Rect.bottom-Height, hWnd, 0, hInst, 0 );
-
Ich meine das Parent-Fenster.
-
Ja, klar. Dort habe ich keine Styles gesetzt.
-
Wenn du CS_HREDRAW und CS_VREDRAW bei CreateWindowEx nicht mit angibst, sind sie nicht gesetzt.
Oder war das jetzt ein ausruf das du den Fehler gefunden hast?