procedure imgListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private procedure WMNCHITTEST(var Msg: TWMNCHITTEST); message WM_NCHITTEST; procedure TfrmStartHit.WMNCHITTEST(var Msg: TWMNCHITTEST);
const
cOffset = ;
var
vPoint: TPoint;
begin
inherited;
vPoint := ScreenToClient(Point(Msg.XPos, Msg.YPos));
if PtInRect(Rect(, , cOffset, cOffset), vPoint) then
Msg.Result := HTTOPLEFT
else if PtInRect(Rect(Width - cOffset, Height - cOffset, Width, Height), vPoint) then
Msg.Result := HTBOTTOMRIGHT
else if PtInRect(Rect(Width - cOffset, , Width, cOffset), vPoint) then
Msg.Result := HTTOPRIGHT
else if PtInRect(Rect(, Height - cOffset, cOffset, Height), vPoint) then
Msg.Result := HTBOTTOMLEFT
else if PtInRect(Rect(cOffset, , Width - cOffset, cOffset), vPoint) then
Msg.Result := HTTOP
else if PtInRect(Rect(, cOffset, cOffset, Height - cOffset), vPoint) then
Msg.Result := HTLEFT
else if PtInRect(Rect(Width - cOffset, cOffset, Width, Height - cOffset), vPoint) then
Msg.Result := HTRIGHT
else if PtInRect(Rect(cOffset, Height - cOffset, Width - cOffset, Height), vPoint) then
Msg.Result := HTBOTTOM;
end; procedure TfrmStartHit.imgListMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE = $F012;
begin
if (Button = mbLeft) then
begin
ReleaseCapture;
(Self as TControl).Perform(WM_SYSCOMMAND, SC_DRAGMOVE, );
end;
end;

http://blog.csdn.net/yanjiaye520/article/details/6736069

procedure MoveSelf;
begin
if form1.Active then
begin
ReleaseCapture;
SendMessage(form1.Handle,WM_SYSCOMMAND,SC_MOVE or HTCAPTION,);
end;
end;

在做登录窗口时一般都是无标题栏,窗口不能被鼠标拖动, 上面的过程可以拖动窗体,结合application.onmessage可时间点任何地方移动窗体

http://blog.csdn.net/y281252548/article/details/18813719

Delphi 实现无窗口移动(详细使用WM_NCHITTEST和PtInRect API进行测试)的更多相关文章

  1. Delphi 实现无窗口移动(发WM_NCHITTEST消息计算,然后再发WM_SYSCOMMAND消息,带参数SC_DRAGMOVE)

    procedure imgListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) ...

  2. 深入delphi编程理解之消息(六)无窗口单元消息的创建、接受及dispatch模式编程

    一.程序界面 二.程序代码 (一).主界面代码 //========================================================================== ...

  3. VC无窗口控制台程序

    VC无窗口控制台程序 #pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartu ...

  4. 关于Delphi中的字符串的详细分析

    关于Delphi中的字符串的详细分析   只是浅浅的解析下,让大家可以快速的理解字符串. 其中的所有代码均在Delphi7下测试通过. Delphi 4,5,6,7中有字符串类型包括了: 短字符串(S ...

  5. 【C#】给无窗口的进程发送消息

    注:本文适用.net2.0+的winform程序 一个winform程序,我希望它不能多开(但是如何防多开不是本文要讲的),那么在用户启动第二个实例的时候,作为第二个实例来说,大概可以有这么几种做法: ...

  6. SetTimer在无窗口和有窗口线程的使用 . .

    今天犯了一个粗心的错误,在无窗口线程中,SetTimer中设置计时器ID,而WM_TIMER消息响应函数中得到的计时器ID却不是之前设置的计时器ID. 对应计时器ID的输出的是一个随机数字. 原来在m ...

  7. 记一次npapi插件无窗口(windowless )化下的妙巧思路然后解决问题的超爽体验过程

     1:问题 集成第三方的ocx控件,用来做pdf显示和签名.如果用窗口化插件做,很简单,加载ocx到窗口中,再显示到网页即可.但这样有个缺点.就是这个窗口会浮动在网页元素的上面,导致遮挡住网页元素.比 ...

  8. 解决CPC撰写文档报错问题“无法获取“AxforApplication”控件的窗口句柄。不支持无窗口的 ActiveX 控件”

    最近公司需要把官方CPC电子申请移植到项目中,在移植完成后,撰写文档总是出现“无法获取“AxforApplication”控件的窗口句柄.不支持无窗口的 ActiveX 控件”,另楼主头疼很久,网上寥 ...

  9. [源码]Delphi 5KB无输入表下载者

    [源码]Delphi 5KB无输入表下载者源码 PROGRAM Fun; type DWORD = LongWord; THandle = LongWord; BOOL = LongBool; LPC ...

随机推荐

  1. Google Map Android api V2 中使用MapView遇到CameraUpdateFactory is not initialized!的解决办法

    先说一下 Map V2 API Key 的问题吧: 在打包APP时需要自己生成一个XXX.keystore 用这个密室库生成的SHA1去申请的key 作为AndroidManifest.xml 中的K ...

  2. Hadoop之——又一次格式化hdfs系统的方法

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46352939 又一次格式化hdfs系统的方法: (1)查看hdfs-ste.xml ...

  3. C++赋值运算符与赋值表达式

    赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量.如“a=3”的作用是执行一次赋值操作(或称赋值运算).把常量3赋给变量a.也可以将一个表达式的值赋给一个变量. 赋值过程中的 ...

  4. BZOJ 3196: Tyvj 1730 二逼平衡树( 树套树 )

    这道题做法应该很多吧.... 我用了线段树套treap.... -------------------------------------------------------------------- ...

  5. 在Centos下安装matlab

    首先科普一下什么事matlab MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包含MATLAB和Simu ...

  6. 通过ip拨号器来了解广播接收者

    1.继承广播接收者类 package com.example.ipdail; import android.content.BroadcastReceiver; import android.cont ...

  7. hdu - 3572 - Task

    题意:有N个作业,M台机器,每个作业1天只能同1台机器运行,每台机器1天只能运行1个作业,第i个作业需要pi天完成,且只能从Si到Ei中选Pi天,问能否完成所有作业(T <= 20, N< ...

  8. 高焕堂《android从程序员到架构师之路》 YY讲坛直面大师学习架构设计

    <android从程序员到架构师之路>YY讲坛活动:  sundy携手高焕堂老师全程YY答疑 与大师一起,分享android技术 时间:7月21日下午2:00   报名联系QQ:22243 ...

  9. Android应用开发学习笔记之BroadcastReceiver

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 一.BroadcastReceiver机制概述 Broadcast Receiver是Android的一种“广播发布 ...

  10. AspNet MVC4 教学-22:Asp.Net MVC4 Partial View 技术高速应用Demo

    A.创建Basic类型的MVC项目. B.Model文件夹下,创建文件: LoginModel.cs: using System; using System.Collections.Generic; ...