CStatic + Scroll Problem
-
Hi!
Ich bin mfc Anfänger und habe folgendes Problem: Ich habe in einem Dialog ein CStatic(in dem ein Bild angezeigt wird) und zwei dazugehörige Scrollbars. Das Scrollen funktioniert und ich kann in das Bild was einzeichnen. Wenn ich jedoch jetzt was einzeichne und dann scrolle(soweit das meine Zeichnung verschwienden sollte) wird meine Zeichnung über den CSatic Bereich hinaus eingezeichnet. Also ich möchte einfach das nur der Bildbereich angezeigt wird und halt nur der Teil meiner Zeichnung der sich im CStatic Bereich befindet.
Meine Frage daher: gibt es irgendeine CDC Methode die mir da helfen kann oder muss ich das anders lösen?thx
-
Du hast das malen unter Windows nicht verstande. Jedes Fenster bekommt einen eigenen WM_PAINT Handler. In dem musst Du zeichnen nirgends sonst. Dann wird auch korrekt nur in dieses Fenster gezeichnet. Du solltest also eine eigene CStatic Klasse ableiten und dann OnPaint überschreiben...
Obwohl das mit dem OnPaint auch so eine Sache ist.
-
Danke erstmal Martin.
Meine sämtlichen Zeichnungen mache ich in meiner Klasse(die von CDialog erbt) über die OnPaint Methode. In der ruf ich sämtliche Draw Methoden auf. (Vor jedem Aufruf einer Draw Methode ruf ich eine prepareDC Methode(beinhaltet setMapMode,setViewportExt) auf)
-
Aber dann darfst Du nicht über ein CStatic zeichen. Jedes Fenster hat seinen eigenen Paint Handler.