unit1.pas

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

PAS
69
字号
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    procedure WMEraseBkgnd(var m:TWMEraseBkgnd); message WM_ERASEBKGND;
    procedure WMWinPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
  public
    { Public declarations }
  protected
    procedure CreateParams(var Params: TCreateParams); Override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
    Brush.Style := bsClear;
    BorderStyle := bsNone;
    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;

procedure TForm1.WMEraseBkgnd(var m:TWMERASEBKGND);
begin
    m.Result := LRESULT(false);
end;

procedure TForm1.WMWinPosChanging(var Message: TWMWindowPosChanging);
begin
    Invalidate;
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WndParent := 0;
  //把此窗口设为Desktop型的
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
  begin
    ReleaseCapture;
    SendMessage(Handle, WM_SYSCOMMAND, SC_MOVE or HTCLIENT, 0);
    self.hide;
    self.Show;
  end;
end;

end.

⌨️ 快捷键说明

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