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.
    
  • 相关阅读:
    模拟ajax请求爬取微博
    使用nohup+& 踩到的坑
    Python3爬虫一之(urllib库)
    在linux下安装并运行scrapyd
    创建Django项目并将其部署在腾讯云上
    python解析库之 XPath
    python3中urllib库的request模块详解
    HTTP协议详解
    线程之红绿灯
    win7 64 下安装MyGeneration 遇到的问题解决方法
  • 原文地址:https://www.cnblogs.com/del/p/1178223.html
Copyright © 2011-2022 走看看