Z-Order und WMNCHitTest
5. Sep 2007, 16:33
Hallo,
ich bin gerade dabei ein Widget-System für unsere Anwendung zu programmieren.
Banal gesehen sind das einzelne Panels die auf unserer Anwendung liegen.
Diese Panels kann man hin und her verschieben, vergrößern/verkleinern und auch übereinander Stapeln.
Beim Beenden wird die Position etc gespeichert und beim Starten wieder geladen.
Dabei speicher ich auch die ZOrder (welche Komponente liegt über welcher) der Panels. Diese ZOrder erhalte ich durch den Index den das Panel in Parent.Controls hat. ZOrder kann man verändern, indem man Panel.BringToFront oder Panel.SendToBack aufruft.
Dies funktioniert alles auch wunderbar, bis auf ...
Um die größe von den Widgets ändern zu können, habe ich WMNCHitTest (sagt Windows, wo z.B. der Rand eines Fenster/Komponente ist) implementiert und dann kümmert sich Windows um die Größenänderung.
Wenn man nun ein Panel hinter einem anderen hat und die Größe von dem hinteren ändert, kommt es automatisch in den Vordergrund. Dabei wird nur leider nicht die ZOrder (von Parent.Controls) geändert ... und ich speicher es dann wieder falsch.
Kann man dies irgendwie verhindern, dass er es in den Vordergrund holt oder kommt man irgendwie an die "echte" ZOrder von Windows? Is so nur echt blöd ...
Gruß,
Steffen
|