• WinAPI: PathToRegion 将路径转换为区域


    本例效果图:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    
    type
      TForm1 = class(TForm)
        procedure FormPaint(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormPaint(Sender: TObject);
    const
      str = 'Delphi';
    var
      Rgn: HRGN;
      x,y: Integer;
    begin
      Canvas.Font.Size := 68;
      Canvas.Font.Style := [fsBold];
      SetBkMode(Canvas.Handle, TRANSPARENT);
    
      x := (ClientWidth - Canvas.TextWidth(str)) div 2;
      y := (ClientHeight - Canvas.TextHeight(str)) div 3;
    
      {建立路径}
      BeginPath(Canvas.Handle);
      Canvas.TextOut(x, y, str);
      EndPath(Canvas.Handle);
    
      {将路径转换为区域}
      Rgn := PathToRegion(Canvas.Handle);
    
      {绘制}
      Canvas.Brush.Color := clSilver;
      Canvas.Brush.Style := bsDiagCross;
      FillRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle);
      Canvas.Brush.Color := clRed;
      Canvas.Brush.Style := bsSolid;
      FrameRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle, 1, 1);
    
      DeleteObject(Rgn);
    end;
    
    end.
    
  • 相关阅读:
    Linux基本权限管理
    Spring JMS
    消息中间件 ActiveMQ的简单使用
    Ionic slides 轮播图
    Spring 3 MVC and XML example
    Java 数组
    Java String类
    Java static 使用
    http://blog.csdn.net/huang_xw/article/details/7090173
    http://blog.chinaunix.net/uid-20577907-id-3519578.html
  • 原文地址:https://www.cnblogs.com/del/p/1208893.html
Copyright © 2020-2023  润新知