TopMost MDIChild

01/04/2008 - 09:18 von Lothar Geyer | Report spam
Ich möchte ein MDIChild bei einem Button_Click im Vordergrund halten
(auch wenn eine andere Form aktiviert wird) und bei einem anderen
Button_Click diesen "Zustand" wieder aufheben, d.h. die Form kann dann
wieder in der ZOrder nach unten wandern. Aber irgend etwas mache ich
falsch. Mein

SetWindowPos Me.hWnd, HWND_TOPMOST, _
0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW _
Or SWP_NOMOVE Or SWP_NOSIZE

funktioniert nicht wie gewünscht.

Lothar Geyer
 

Lesen sie die antworten

#1 Christian Zimmermann
01/04/2008 - 10:10 | Warnen spam
Hallo Lothar,

Lothar Geyer schrieb:
Ich möchte ein MDIChild bei einem Button_Click im Vordergrund halten
(auch wenn eine andere Form aktiviert wird) und bei einem anderen
Button_Click diesen "Zustand" wieder aufheben, d.h. die Form kann dann
wieder in der ZOrder nach unten wandern. Aber irgend etwas mache ich
falsch. Mein

SetWindowPos Me.hWnd, HWND_TOPMOST, _
0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW _
Or SWP_NOMOVE Or SWP_NOSIZE

funktioniert nicht wie gewünscht.



MDI-Childs verhalten sich nicht wie Non-MDI-Child-Fenster. Das im
Vordergrund stehende MDI-Child wird auch automatisch aktiviert und
bekommt den Fokus. Wenn du im Deactivate-Ereignis der im Vordergrund
bleibenden Form die ZOrder-Methode anwenden würdest, dann kommt es immer
wieder nach vorne, mit dem Effekt, dass die anderen MDI-Childs quasi
nicht benutzt werden können. Eine Eingabe in ein Textfeld auf einem
anderen Form würde nicht mehr funktionieren.

Das setzten des TopMost-Attributes würde auch das MDI-Konzept
konterkarieren. Dafür ist es nicht gedacht. HWND_TOPMOST funktioniert
demnach nur für das MDI-Form.

Gruß

Christian

Ähnliche fragen