Delphi 保持面板始终位于底部mdi应用程序
我想知道,如何使面板始终位于所有mdi窗体的底部 我有这个Delphi 保持面板始终位于底部mdi应用程序,delphi,Delphi,我想知道,如何使面板始终位于所有mdi窗体的底部 我有这个 procedure TPanel.Loaded; begin Windows.SetParent(Handle, MainForm.ClientHandle); end; procedure TPanel.WMWindowPosChanging(var Message: TWMWindowPosChanging); begin
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),让系统向我显示一个通知。