2009-07-13 8 views
0

Wir haben eine ziemlich komplexe GUI. Wenn bestimmte Fenster in der Größe verändert werden, wird Redraw() auf false gesetzt, bis der Vorgang abgeschlossen ist. Das Problem dabei ist, dass, wenn das Betriebssystem "Fensterinhalt beim Ziehen anzeigen" aktiviert ist, beim Verringern der Fenstergröße die Fenster dahinter nicht neu gezeichnet werden. Dies bedeutet, dass ich das Repaint selbst erzwingen muss, damit die Reste des skalierten Fensters gelöscht werden. Ich habe kein Problem, die Dimensionen der Region, die aufgedeckt wurde, zu bekommen. Nach was ich suche, ist der beste Weg, um alle Fenster innerhalb dieser Region zu veranlassen, ihren Teil neu zu streichen.Aktualisiere die Region hinter einem skalierten Fenster

Da ich nicht viel von einem GUI-Programmierer bin, kann ich die unbedeckte Region durchqueren und die Fenster darin auflisten. Dann kann ich jeden von ihnen bitten, seinen Teil neu zu streichen. Aber ich bin ziemlich sicher, dass es einen besseren Weg gibt, dies zu tun ...

Es ist erwähnenswert, dass die App in PowerBuilder geschrieben ist. Das bedeutet, dass ich jede Win32-Funktion aufrufen kann, die ich möchte, aber die Kontrolle über das GUI-Verhalten und die Nachrichtenbehandlung eingeschränkt habe. Wenn es eine bessere Möglichkeit gibt, zu verhindern, dass die Inhaltsgröße des Fensters sichtbar wird, oder gibt es eine Möglichkeit, ein nicht neu gezeichnetes Fenster nach sich selbst zu säubern, würde ich es gerne hören (behalte die obigen Einschränkungen im Hinterkopf).

Antwort

0

Ich bin gespannt auf welche Version von PowerBuilder Sie arbeiten? Ich verändere ständig die Größe und stoße nie auf Probleme, wie Sie es beschreiben.

Vielleicht können Sie detailliertere Informationen dazu finden, warum Sie Ihre Neuzeichnungen innerhalb der PowerBuilder-Umgebung auf false setzen müssen.

Ich hoffe, ich kann helfen.

Verwandte Themen