文档章节

不使用标题栏拖动窗体

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 337
阅读 7
收藏 0
方法一、二、三效果图:



方法四效果图:



方法一:
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.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/04/30/1178226.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
WPF中自定义标题栏时窗体最大化处理之WindowChrome

注意: 本文方法基础是WindowChrome,而WindowChrome在之后才集成发布的。见:WindowChrome Class 在中使用WindowChrome,需要安装Ribbon来支持WindowChrome 目前官方文档的内容较为陈旧(但...

奇葩史
11/11
0
0
C# 移动分分彩平台搭建无标题栏窗体的几种方法

第一种,手工分分彩平台搭建论坛:haozbbs.com Q1446595067 移动。 该方法根据鼠标位置实现窗体的移动。网上有很多相关的例子,这里不再多讲。 第二种,调用系统API 原理:是当鼠标左键按下时...

wiwidi
07/07
0
0
C# 在滚动窗口中绘图(滚动条原理) 转载

C# 在滚动窗口中绘图(滚动条原理) 转载 2016年07月26日 13:50:01 2626 窗体的大小由窗体的Size属性确定,这个大小包括了窗体的标题栏和边框。而窗体中用于显示客户文档的区域称为工作区(C...

mosangbike
01/08
0
0
我用vc+仿照金山毒霸软件工具界面(创世纪篇)

金山毒霸软件软件很炫,一直想仿照,终于摸透它的程序开发原理。 说干就干,本着由浅入深的原则,我选择了金山毒霸的一个附带工具:Duba_GOP.exe来开刀。该工具在金山毒霸的网站上可以下载到...

crossmix
2015/11/06
0
0
FineUI v3.2.5 发布了!(支持IE10)

关于FineUI 基于 ExtJS 的专业 ASP.NET 2.0 控件库。 FineUI的使命 创建 No JavaScript,No CSS,No UpdatePanel,No ViewState,No WebServices 的网站应用程序。 支持的浏览器 IE 7.0+、F...

三生石上
2013/04/28
4.6K
7

没有更多内容

加载失败,请刷新页面

加载更多

node.js学习笔记之koa框架和简单爬虫练习

Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,可以免除重复繁琐的回调...

前端小攻略
25分钟前
3
0
JavaScript中的继承及实现代码

JS虽然不像是JAVA那种强类型的语言,但也有着与JAVA类型的继承属性,那么JS中的继承是如何实现的呢? 一、构造函数继承 在构造函数中,同样属于两个新创建的函数,也是不相等的 function Fn...

peakedness丶
46分钟前
3
0
记一次面试最常见的10个Redis"刁难"问题

导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 Redis在...

小刀爱编程
59分钟前
17
0
TiDB Lab 诞生记 | TiDB Hackathon 优秀项目分享

本文由红凤凰粉凤凰粉红凤凰队的成员主笔,他们的项目 TiDB Lab 在本届 TiDB Hackathon 2018 中获得了二等奖。TiDB Lab 为 TiDB 培训体系增加了一个可以动态观测 TiDB / TiKV / PD 细节的动画...

TiDB
今天
4
0
当区块链遇到零知识证明

本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的。这个定义有点抽象,下面笔者举...

腾讯云加社区
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部