开发者社区 问答 正文

Delphi MDI Application和MDI Children的标题栏

我有一个用Delphi 2006编写的MDI应用程序,该应用程序以默认主题运行XP。

有没有一种方法可以控制MDI Children的外观,从而避免每个窗口上都有大型XP样式的标题栏?

我已经尝试设置BorderStyle的MDIChildren到bsSizeToolWin,但他们仍然呈现正常的形态。

展开
收起
游客ufivfoddcd53c 2020-01-03 19:40:09 854 分享 版权
1 条回答
写回答
取消 提交回答
  • 您所有需要的-重载过程CreateWindowHandle,如下所示:

    unit CHILDWIN;
    interface
    uses Windows, Classes, Graphics, Forms, Controls, StdCtrls;
    
    type
      TMDIChild = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
        procedure CreateWindowHandle(const Params: TCreateParams); override;
      end;
    
    implementation
    
    {$R *.dfm}
    procedure TMDIChild.CreateWindowHandle(const Params: TCreateParams);
    begin
      inherited CreateWindowHandle(Params);
      SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
    end;
    end.
    
    2020-01-03 19:40:26
    赞同 展开评论
问答地址: