Delphi - 在另一个窗体后创建窗体

3
我正在使用Delphi 4。 我有一个主窗体,其中有一个按钮,可以动态创建一个新窗体。 我希望新窗体可见,但显示在主窗体后面。
我尝试在FormCreate()之后立即调用SendToBack()。但这会使窗口在实际被发送到后面之前快速闪烁。
我尝试将窗体设置为不可见,然后SendToBack(),再将Visible := true。 但是新窗体仍然在最前面。
看起来SendToBack()只能用于可见的窗体?如何使窗体显示在主窗体后面?
2个回答

1
这对我有用:
SetWindowPos(newform.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_SHOWWINDOW
  or SWP_NOMOVE or SWP_NOOWNERZORDER or SWP_NOSIZE or SWP_NOACTIVATE);

newform.Visible := true;

感谢您的帮助!


0

将第二个窗口(例如form2)设置为不可见,然后调用:

showWindow(form2.handle,SW_SHOWNOACTIVATE);

-don


谢谢,但那并没有起作用。 如果我调用ShowWindow(newform.handle, SW_SHOWNOACTIVATE),然后设置newform.Visible := true。它仍然会出现在前面。 - Clement
为什么要调用 newform.visible := true;?如果你不加这个,它应该可以工作。 - Don Dickinson
之后,我检查了 "if (newform.visible) then do-stuff;"。但是在没有 visible:=true 的情况下使用 showWindow(),visible 属性似乎是 false。 - Clement

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接