Flackern bei Childfenstern
-
Ich habe ein Hauptfenster und ein Childfenster, jedes hat einen eigenen DC! Nun habe ich auch einen Backbuffer, sodass der Hintergrund nicht flackert! Wenn ich aber nun ales neuzeichne, dann flackert das ChildFenster!
Weiß jemand warum, und wie ich das abschalten kann?
Ich habe das Erasen abgeschlatet, nurhalt kommt auf dem Childfenster erst der teil des DC's der Hauptfensters, wo es liegt und danach erst das eigentliche DC des Childfensters

-
-
Danke, das ist aber nicht das Problem welhes ich meine! Es soll ja nu gezeichnet werden wenich die größe des fensters änder, das problm ist, das vom childfenster erst der hintergrund vom hauptfenster übernommen wird, und dann das eigentliche bild erscheint, und das sieht dann so aus als ob es flackern würde! Wie kann ich machen, das einfach überzeichnet wird, aber nicht ert der dc gelert wird und dann gezeichnet ?
-
das kommt darauf an wie du es löschst
wenn du als class-style
CS_HREDRAW | CS_VREDRAWhast, dann flackert das halt
msdn:
CS_HREDRAW Redraws the entire window if a movement or size adjustment changes the width of the client area.
nimm lieber 0 als classstyle und invalidiere das fenster bei WM_SIZE selber
//.. case WM_SIZE: InvalidateRect(hWnd, 0, FALSE);mit dem letzten Parameter sagst du, dass das fenster nicht gelöscht
werden soll, sondern nur übermaltmfg helferlein
-
Kann man das Flackern nicht auch mit dem Stil WS_CLIPCHILDREN verhindern?
-
Danke helferlein! Die lösung ist so simpel, schon peilich das ich da nicht selber drauf gekommen bin xD
-
@Lucky, ja, aber dann hat es ja einen rahmen xD
-
Hmm, problem ist noch nicht beseitigt

Ich muss das hauptfenster auch neu zeichnen lassen, wenn ich das child fenster verschiebe, denn onst entsteht da solch ein dummer streifen

Wennich das nun mache, dann flackert das Childfenster wieder

-
Okay, ich will das dann nun ein wenig anders machen! Ich möchte einfach ein popup fenster machen, und das dann in das hauptfenster packen, aber dazu brauche ichdie position des hauptfensters, aber icht ab der Titelbar, sondern ab dem zeichenbereich!
http://www9.picfront.org/picture/kO7wXRVdTq/img/ab.png
Aber wie komme ich an diese psition?
-
ClientToScreen.
Aber was soll das? Ein Popup Fenster in ein anderes Fenster zu packen geht nicht. Du kannst es nur drüber legen. Aber was oll das bitte für einen Sinn haben. Dnan kanst Du das Fenster auch gleich als Child hinein legen in das Fenster. Dann brauchst Du wenigestens kein Handling beim Verschieben des Hauptfensters.
-
Ja, aber dann flackert es!
-
Oh, ich habe das problem beseitigt, eigentlich lag die lösung die ganze zeit vor augen, dank Luckie! Ich habe gedacht das das Chilfenster WS_CLIPCHILDREN haben muss, aber das muss ja ins Parent fenster! xD
Ich habe mich mal darüber in der MSDN informiert, und es macht genau das was ich will, es legt einen eigenen DC für das Child an, welches nicht vom Parent fenster überschrieben wird

Danke Luckie!
-
Code-Walker schrieb:
Danke Luckie!
Ich habe schon am mir selbst gezweifelt.
