zoukankan      html  css  js  c++  java
  • XP风格

    unit Unit1;
    //加上这句和下边的{$R WindowsXP.res} 相当于放了一个xp风格组件,激活了风格
    {$WEAKPACKAGEUNIT ON} //弱引用,参见编译指令
    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, Themes;
    //引用 Themes 单元,此单元中提供一组服务,用来调用系统的 uxtheme.dll 风格库
    //其中提供了各种空间风格的绘制函数,具体调用可参见 Thems 单元

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    TMyThemsControl = class(TPanel)
    private
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
    protected
    procedure Paint; override;
    end;

    var
    Form1: TForm1;
    {$R WindowsXP.res}
    implementation

    {$R *.dfm}

    { TMyThemsControl }

    procedure TMyThemsControl.Paint;
    var
    Details: TThemedElementDetails;
    begin
    inherited;
    //获取一种风格
    Details := ThemeServices.GetElementDetails(themes.tbPushButtonNormal);
    ThemeServices.DrawElement(Canvas.Handle, Details, Self.ClientRect, nil);
    end;


    procedure TMyThemsControl.WMEraseBkgnd(var Message: TWMEraseBkgnd);
    begin
    //判断服务是否开启
    if ThemeServices.ThemesEnabled then
    Message.Result := 1
    else
    DefaultHandler(Message);
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
    b: TMyThemsControl;
    begin
    b := TMyThemsControl.Create(self);
    b.Parent := Self;
    end;

    end.

  • 相关阅读:
    GO 文档笔记
    GO 切片实力踩坑
    关于接口设计的一些反思
    Jenkins 发布.net core 程序,服务端无法下载nuget包的解决方法 error NU1102: 找不到版本为 (>= 3.1.6) 的包
    RabbitMQ 基础概念进阶
    RabbitMQ 入门之基础概念
    Object.entries()使用
    shadow的属性值介绍
    行内元素的特别之处
    margin的特别之处
  • 原文地址:https://www.cnblogs.com/spiritofcloud/p/3976183.html
Copyright © 2011-2022 走看看