Delphi 保持面板始终位于底部mdi应用程序

Delphi 保持面板始终位于底部mdi应用程序,delphi,Delphi,我想知道,如何使面板始终位于所有mdi窗体的底部 我有这个 procedure TPanel.Loaded; begin Windows.SetParent(Handle, MainForm.ClientHandle); end; procedure TPanel.WMWindowPosChanging(var Message: TWMWindowPosChanging); begin

我想知道,如何使面板始终位于所有mdi窗体的底部 我有这个

      procedure TPanel.Loaded;
      begin
      Windows.SetParent(Handle, MainForm.ClientHandle);
      end;  


       procedure TPanel.WMWindowPosChanging(var Message: TWMWindowPosChanging);
         begin
           inherited;
           Message.WindowPos^.hwndInsertAfter := HWND_BOTTOM;
         end;
但是,当我使用系统菜单的form with command next更改MDI表单时,面板将位于其上方
感谢并抱歉我的英语

我无法重现描述的行为(D2010)。我在级联上有类似的行为,可以通过添加过程MyCascade(var msg:TMessage)来删除;消息WM_;显然,当子窗口的z顺序发生变化时,系统不会向非MDIChild窗口发送
WM_WINDOWPOSCHANGING
消息。在较新版本的Delphi中,
ClientWndProc
是虚拟的,因此您可以覆盖主窗口中的处理,并在
WM_MDIGETACTIVE
消息后设置面板的z顺序。@Manuel,您是否从TPanel派生新类?我真的不明白你有什么问题。请随意用西班牙语回复和解释,我会把它翻译成英语,不要为你的错误感到抱歉。只是别忘了在你的评论中添加我的名字和@(@jachguate),让系统向我显示一个通知。