Delphi中如何实现允许在主窗口顶部绘制非模态子窗口的功能?

2026-04-10 21:333阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计259个文字,预计阅读时间需要2分钟。

Delphi中如何实现允许在主窗口顶部绘制非模态子窗口的功能?

在Delphi(2009+Pro)中,我创建了一个可创建非模式子窗口的主窗体。希望无论哪种形式,顶部绘制都具有焦点 —— 即便使用Delphi 2007/2009和VCL改变有关具有相关父级的行性行为,主窗口口也具有焦点。

在Delphi(2009 Pro)中 – 我有一个可以创建非模态子窗口的主窗体.我希望无论哪种形式都有焦点在顶部绘制 – 即使它是具有焦点的主窗口. 使用Delphi 2007/2009,VCL改变了有关表单父级的行为.在Delphi 1-2006中,表单的父级是隐藏的应用程序窗口(Application.Handle).在Delphi 2007/2009中,表单的父级是主窗体,主窗体的父级是桌面.

如果你想改变这个,你可以将* .dpr行Application.MainFormOnTaskbar更改为False,它会给你旧的行为,但也会使你的应用程序在Vista和Windows 7中看起来很奇怪.或者你可以覆盖虚拟的CreateParams方法所有非模态子窗体并将Params.WndParent字段设置为桌面(HWND_DESKTOP)或仍然存在的Application.Handle.

type TMyChildForm = class(TForm) protected procedure CreateParams(var Params: TCreateParams); override; end; procedure TForm1.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.WndParent := Application.Handle; end;

Delphi中如何实现允许在主窗口顶部绘制非模态子窗口的功能?

本文共计259个文字,预计阅读时间需要2分钟。

Delphi中如何实现允许在主窗口顶部绘制非模态子窗口的功能?

在Delphi(2009+Pro)中,我创建了一个可创建非模式子窗口的主窗体。希望无论哪种形式,顶部绘制都具有焦点 —— 即便使用Delphi 2007/2009和VCL改变有关具有相关父级的行性行为,主窗口口也具有焦点。

在Delphi(2009 Pro)中 – 我有一个可以创建非模态子窗口的主窗体.我希望无论哪种形式都有焦点在顶部绘制 – 即使它是具有焦点的主窗口. 使用Delphi 2007/2009,VCL改变了有关表单父级的行为.在Delphi 1-2006中,表单的父级是隐藏的应用程序窗口(Application.Handle).在Delphi 2007/2009中,表单的父级是主窗体,主窗体的父级是桌面.

如果你想改变这个,你可以将* .dpr行Application.MainFormOnTaskbar更改为False,它会给你旧的行为,但也会使你的应用程序在Vista和Windows 7中看起来很奇怪.或者你可以覆盖虚拟的CreateParams方法所有非模态子窗体并将Params.WndParent字段设置为桌面(HWND_DESKTOP)或仍然存在的Application.Handle.

type TMyChildForm = class(TForm) protected procedure CreateParams(var Params: TCreateParams); override; end; procedure TForm1.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.WndParent := Application.Handle; end;

Delphi中如何实现允许在主窗口顶部绘制非模态子窗口的功能?