zoukankan      html  css  js  c++  java
  • [转万一] 不使用标题栏拖动窗体

    http://www.cnblogs.com/del/archive/2008/04/30/1178226.html

    方法一、二、三效果图:



    方法四效果图:



    方法一:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    
    type
      TForm1 = class(TForm)
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
        procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    var
      f: Boolean;
      x1,y1: Integer;
    
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      x1 := X;
      y1 := y;
      f := True;
    end;
    
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if not f then Exit;
      Left := Left + X - x1;
      Top := Top + Y - y1;
    end;
    
    procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      f := False;
    end;
    
    end.

    方法二:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    
    type
      TForm1 = class(TForm)
        procedure MyMsg(var msg: TWMNCHitTest); message WM_NCHITTEST;
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.MyMsg(var msg: TWMNCHitTest);
    begin
      Inherited;
      if msg.Result = HTCLIENT then
        msg.Result := HTCAPTION;
    end;
    
    end.

    方法三:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    
    type
      TForm1 = class(TForm)
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;
      SendMessage(Handle, WM_SYSCOMMAND, $F011, 0);
      {参数3在 $F011-$F01F 之间均可都是移动控件}
    end;
    
    end.

    方法四:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;
    
    type
      TForm1 = class(TForm)
        Panel1: TPanel;
        procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;
      SendMessage(Handle, WM_SYSCOMMAND, $F011, 0);
    end;
    
    end.
  • 相关阅读:
    hdu2988:Dark roads(最小生成树)
    hdu1596:find the safest road(最短路)
    hdu1596:find the safest road(最短路)
    CultureInfo中重要的InvariantCulture
    c#通过反射获取类上的自定义特性
    分享我们项目中基于EF事务机制的架构 【转载】
    ASP.NET MVC3中的路由系统(Routes) .
    为ASP.NET MVC应用添加自定义路由
    Mvc生成页面之t4模板相关
    LINQ to SQL语句对应SQL的实现
  • 原文地址:https://www.cnblogs.com/rogge7/p/4766084.html
Copyright © 2011-2022 走看看