zoukankan      html  css  js  c++  java
  • 创建异形窗口[5]

    本例效果图:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure FormPaint(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure FormDblClick(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    var
      bit: TBitmap;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      bit := TBitmap.Create;
      bit.LoadFromFile('c:\temp\test.bmp');
    end;
    
    procedure TForm1.FormPaint(Sender: TObject);
    begin
      Canvas.Draw(0, 0, bit);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      rgn1,rgn2: HRGN;
      x,y,w,h: Integer;
    begin
      w := bit.Width;
      h := bit.Height;
    
      rgn1 := CreateRectRgn(0, 0, w, h);
    
      for x := 0 to w - 1 do
        for y := 0 to h - 1 do
          if bit.Canvas.Pixels[x,y] = clBlack then
          begin
            rgn2 := CreateRectRgn(x, y, x+1, y+1);
            CombineRgn(rgn1, rgn1, rgn2, RGN_XOR);
            DeleteObject(rgn2);
          end;
      SetWindowRgn(Handle, rgn1, True);
    
      Self.BorderStyle := bsNone;
      Self.Width := w;
      Self.Height := h;
    end;
    
    procedure TForm1.FormDblClick(Sender: TObject);
    begin
      Close;
    end;
    
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      bit.Free;
    end;
    
    end.
    
  • 相关阅读:
    2020年蓝桥杯校内模拟赛
    kaggle入门——泰坦尼克之灾
    在线程池里面执行
    如何使用在线工具手动验证JWT签名
    python日志模块
    性能测试
    自动生成时间
    jmeter + tomcat + ant + svn +jenkins 实现持续集成测试
    JMeter性能测试,完整入门篇
    jmeter 24个常用函数
  • 原文地址:https://www.cnblogs.com/del/p/1178223.html
Copyright © 2011-2022 走看看