制作没有边框的窗体,并可移动

来源:互联网 发布:淘宝活动报名表格 编辑:程序博客网 时间:2024/05/16 07:50
unit MainFrm;
interface
uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
type
  TMainForm = class(TForm)
    btnClose: TButton;
    procedure btnCloseClick(Sender: TObject);
  private
    { Private declarations }
  protected
    // Capture the WM_NCHITTEST message to enable moving the form.
   // 捕捉WM_NCHITTEST 消息,以便移动窗体
    procedure WMNCHitTest(var Message: TWMNCHitTest);  message WM_NCHITTEST;
  public
    { Public declarations }
   //创建一个没有标题但可以重设大小的窗体,要实现需要覆盖窗体的CreateParams( )方法,然后设置相关风格
    procedure CreateParams(var Params: TCreateParams); override;
  end;
var
  MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  Message.Result := HTCAPTION;
end;
procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER;
end;
end.