Laden...

MDIChild Maximieren Effekt.

Letzter Beitrag vor 17 Jahren 3 Posts 2.155 Views
MDIChild Maximieren Effekt.

Hallo, arbeite zurzeit an einem GUI für eine BDE Maske.
Hierfür verwende ich einen MdiContainer und MdiChilds.

Ich habe schon einige Dinge ausprobiert komme aber an einer Stelle leider nicht weiter, beim maximieren des MdiChild dockt sich das MdiChilds im MenuStrip des MdiContainer (MdiParent) ein.

Habe bereits versucht in der WndProc die Windows Message mit WM_SYSCOMMAND und den WParam mit SC_MAXIMIZE abzufangen, was auch ohne Probleme klappt. Gebe ich nun einfach einen return mit, wird das fenster nunmehr nicht maximiert. Aber die Nachricht für den WindowState (FormWindowState.Maximized) geht dann natürlich auch verloren.

Habe auch versucht mit der Windows API funktion LockWindowUpdate(this.Handle) das MDI Fenster zu sperren, leider erscheinen dennoch das Icon wie die Maximieren-, Minimieren- und Close Buttons im MenuStrip.

Habe leider keine Idee welche WindowsMessage ich hier abgreifen muss, oder welches Tool es evtl erleichtern würde die entsprechende Windows Message zu finden. Oder welche Windows API funktion es erlaubt das WindowState zu setzen.

Hat jemand vielleicht einen Tipp für mich?

/ps
Im Anhang befindet sich Screenshoot des Testprojekts bzw. der Effekte.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

Du kannst ja das Maximieren abfangen und verhindern, hast du gesagt. An dieser Stelle stellst du einfach mal MdiChild.Dock auf DockStyle.Fill. Das müsste eigentlich den gewünschten Effekt bringen.

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

Hallo, habe das auch schon Probiert, der gewünschte Effekt tritt ein.
Problem ist nur dass der maximieren Status nicht mehr gesendet wird.

Also das Fenster weis dann nicht mehr das es sich grade im Maximieren Zustand befindet.
Somit befindet sich das Fenster immer im FormWindowState.Normal Zustand. Die Windows Message WM_Restore geht dann leider nicht mehr.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(