是否有可能在MDIChild表单后面显示一个无模式的“wsNormal”WindowsState表单?我想创建一个始终落后于其他形式的NOTE表单(但总是在MDI表单之前),除非你把它带到前面。例如,当您点击它时。
答案 0 :(得分:2)
对于不属于MDI容器的子窗口,这在技术上是不可能的。
MDI子项是MDI容器的子窗口,它是主窗体的子窗口。如果窗口位于主窗体的前面,则它位于MDI子窗口的前面。如果它在主要表格后面,那么它就是MDI儿童的背后。
答案 1 :(得分:2)
通常不,MDI父级是MDI子级的根父级,您要么低于MDI父级,要么高于MDI级别。但您可以将顶级表单的父级设置为MDICLIENT。
我不会建议这种方法,因为它可能会有复杂性(也许(?)你可以通过调整一些其他MDI客户端类来实现相同的效果)。但是,如果您想尝试创建一个新的“MDI应用程序”项目,并将从Help-> About菜单项运行的代码更改为:
procedure TMainForm.HelpAbout1Execute(Sender: TObject);
begin
// AboutBox.ShowModal;
windows.SetParent(AboutBox.Handle, ClientHandle);
AboutBox.Show;
SetWindowPos(AboutBox.Handle, HWND_BOTTOM, 0, 0, 0, 0,
SWP_NOSIZE or SWP_NOMOVE);
end;