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?


Anmelden zum Antworten