none
Dialog, WM_PAINT und WS_CLIPCHILDREN RRS feed

  • Frage

  • Hallo zusammen... mal sehen ob das jemand erklären kann.

    Wir haben einen Dialog gebaut. Der hat einen Hintergrund, den wir zeichnen im WM_PAINT. Ausserdem hat der Dialog natürlich Knöpfe und sonstwas drauf... jetzt passiert uns manchmal, dass dieser Dialog sich überhaupt nicht zeichnet (er war einfach ein grauer Fleck auf dem Bildschirm). Die Frage war natürlich, woher das kam... also haben wir Spy++ mitlaufen lassen. Dann haben wir gesehen, dass, wenn die Maus über einem Button steht (was per Zufall ab und zu halt der Fall war beim erstellen des Dialogs), dass dann alles austickt und er fast endlos WM_PAINT bekommt.

    Wir haben damit dann etwas rumgespielt und mal das WS_CLIPCHILDREN gesetzt im Dialog. Und siehe da... weg war das Problem (wir wissen noch nicht ganz genau, ob das für uns einen Nachteil hat beim zeichnen des Hintergrundes hinter dem Child-Fenster, aber wir glauben im Moment mal, dass es kein Nachteil ist).

    Die Frage ist jetzt nur, woher diese Austickerei kommt... wenn der Parent das Child überzeichnet. Dann hätte das zur Folge, dass das Child sich neu zeichnet. Gut... (und wir reden hier von einem Standard-Button, an dem haben wir gar nichts gemacht). Wieso löst jetzt aber dieses Kind-zeichnen ein erneutes Zeichnen des Parents aus?? Und wieso löst sich das Problem ab und zu in Luft auf, wenn man wie wild den Fokus auf das Fenster, neben das Fenster auf das Fenster etc. setzt ... und plötzlich verschwindet das verhalten... keine Ahnung was wir auslösen... aber so richtig ist uns das nicht klar wie Windows hier funktioniert...

    Weiss das jemand was hier passiert??

    Rudolf

    Samstag, 9. November 2013 22:21

Alle Antworten