unit1.pas

来自「Delphi7应用编程150例 附书源码」· PAS 代码 · 共 59 行

PAS
59
字号
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TfrmMain = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    procedure WMNCHITTEST(var M:TWMNCHITTEST); message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
var
    dc:HDC;
    region:HRGN;
begin
    dc:=self.Canvas.Handle;
	BeginPath(dc);
	//根据路径创建不规则窗体
	SetBkMode(dc,TRANSPARENT);
	//设置为透明模式
    Ellipse(dc,20,20,220,220);
	EndPath(dc);
	region:=PathToRegion(dc);
	SetWindowRgn(self.Handle,region,TRUE);
end;

procedure TfrmMain.WMNCHITTEST(var M:TWMNCHITTEST);
begin
    inherited;
    if M.Result=HTCLIENT then
        M.Result:=HTCAPTION;
end;
procedure TfrmMain.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if Key=27 then
        Application.Terminate;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?