创建异形窗口[5]
2008-04-30 22:23
162 查看
本例效果图:
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.
相关文章推荐
- 创建异形窗口[3]
- 创建异形窗口(总结)
- 创建异形窗口
- 如何使用SetWindowRgn函数创建异形窗口
- 使用SetWindowRgn函数创建异形窗口 --简单异形窗口
- 创建自贴图图片异形窗口小火箭
- 使用SetWindowRgn函数创建异形窗口 --简单异形窗口
- 在Windows中怎样创建异形窗口?
- 创建异形窗口[4]
- 如何使用SetWindowRgn函数创建异形窗口 选择自 ghj1976 的 Blog
- 创建异形窗口[1]
- 创建异形窗口[2]
- 创建异形窗口[6]
- 利用位图创建异形对话框窗口
- 如何使用SetWindowRgn函数创建异形窗口
- delphi 创建半透明的异形窗口
- Win32下创建异形窗口
- MFC程序对win32的封装总结(窗口类的注册,窗口的创建,窗口的窗口过程指定)
- win32程序窗口的创建
- C++API创建Win32窗口