`
paulfzm
  • 浏览: 888333 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

delphi实现拖动无标题窗口的5种方法

 
阅读更多

1.MouseMove事件中加入:

// ReleaseCapture;
// Perform(WM_SYSCOMMAND, $F017 , 0); 

2.MouseDown事件中加入:

// POSTMESSAGE(Self.Handle,WM_LBUTTONUP,0,0);
// POSTMESSAGE(Self.Handle,274,61458,0); 

3.MouseDown事件中加入:

// ReleaseCapture;
// Perform(WM_SYSCOMMAND, $F012, 0); 

4.截获WM_NCHITTEST消息

procedure WMNCHITTEST(var Msg:TWMNCHITTEST);message WM_NCHITTEST; 

procedure TForm1.WMNCHITTEST(var Msg: TWMNCHITTEST);
begin
inherited;
//Msg.Result:=HTCaption;
end; 

5.

private
procedure AppMessage(var Msg:TMsg;var Handled:Boolean); 

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=AppMessage;
end; 

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
//(GetKeyState(vk_CONTROL) < 0)
if (Msg.message=WM_LButtonDown) and
(DefWindowProc(Handle,WM_NCHitTest,
0,GetMessagePos)=HTClient) and
(True) then
begin
SendMessage(Handle,WM_NCLButtonDown,
HTCaption,GetMessagePos);
//发送鼠标在标题栏内按下的消息
Handled:=true;
end;
end;



在MousDown事件中写
ReleaseCapture;//释放鼠标控制区域
SendMessage(Handle,WM_SYSCOMMAND,SC_MOVE+HTCaption,0);//发送移动标题栏消息
如,要在Panel上可以移动窗口
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle,WM_SYSCOMMAND,SC_MOVE+HTCaption,0);
end; 

分享到:
评论

相关推荐

    delphi无标题栏窗口的拖动

    delphi无标题栏窗口的拖动 一般情况下,移动一个窗体需要将鼠标放置在标题栏上才能拖动窗体,为什么非要使用标题栏呢?其实我们可以使用一个巧妙的方法来实现将鼠标放置在窗体上按下就可拖动窗体

    不用标题栏就可实现Delphi窗口拖动..rar

    通过以上步骤,我们就实现了无标题栏的Delphi窗体的拖动功能。请注意,这只是一个基础示例,实际应用中可能需要考虑更多的细节,比如防止窗口移动到屏幕之外、在拖动过程中禁用其他窗体的交互等。在Delphi编程中,...

    delphi 无标题窗体加边框可拖拽调整大小

    综上所述,"delphi 无标题窗体加边框可拖拽调整大小"这一知识点涉及到了如何在无标题的Delphi窗体上实现拖动和调整大小的功能。通过监听鼠标事件和自定义窗体边缘的行为,开发者可以创建出具有类似边框效果的无标题...

    Delphi无标题栏改变窗口大小..rar

    "Delphi无标题栏改变窗口大小"这个主题主要涉及到以下几个核心知识点: 1. **窗体样式设置**: Delphi中的窗体(TForm)有一个属性叫做BorderStyle,它决定了窗体的边框类型。要实现无标题栏的效果,我们需要将...

    Delphi实现拖动按钮移动无标题栏窗口

    Delphi添加一个可拖动窗体的按钮,通过对此按钮的控制可移动窗体,实现按住标题栏移动窗口的功能,无标题栏也就不能显示最大化、最小化和关闭窗口的功能,因此本程序自定义了一个关闭窗口的方法,那就是长按ESC键可...

    Delphi7视频教学第二十二讲 可缩放无标题窗口

    在本节"Delphi7视频教学第二十二讲 可缩放无标题窗口"中,我们将深入探讨如何在Delphi 7环境下创建一个无标题栏但可缩放的窗口。这通常用于那些希望自定义界面或者不需要标准窗口控制(如最大化、最小化和关闭按钮)...

    delphi 无标题窗体加边框可拖拽调整大小及移动窗体

    本文将深入探讨如何在Delphi中为无标题窗体添加边框,使其具有拖拽调整大小和移动的能力。 首先,让我们理解窗体的BorderStyle属性。在Delphi中,窗体的BorderStyle属性决定了窗体的外观和行为。默认值通常为...

    不按住标题栏实现的窗口拖动效果-Delphi.rar

    Delphi实现个性的窗口拖动功能,不按住标题栏实现的窗口拖动效果,因为一般情况下,都是按住窗口的标题栏才能拖动窗口,本实例代码将演示不按标题栏也可拖动窗口移动位置。if (htclient=msg.result) then msg.result...

    Delphi无标题栏窗体拖动的方法 源码例子.rar

    本示例提供的"Delphi无标题栏窗体拖动的方法 源码例子.rar"正是为了展示如何实现这一功能。 首先,我们需要理解Delphi中的TForm组件。TForm是Delphi中用于创建窗口的基础类,它包含了窗体的基本属性、方法和事件。...

    Delphi窗口编程:如何让窗口不可拖动位置.rar

    Delphi窗口编程实例:如何让窗口不可拖动位置,即使鼠标按在标题栏上,也不能拖动窗口,窗口变得不可移动,打开时在什么位置 ,就始终保持在某位置,实现此功能的关键代码部分:  Msg.WindowPos.x := Left;  //...

    delphi实现QQ窗口抖动效果源码

    在Delphi编程环境中,实现QQ窗口抖动效果主要涉及到Windows API的使用,特别是与窗口消息相关的函数和常量。这个源码示例可能是为了在自己的应用程序中模拟QQ的消息通知方式,吸引用户注意力。下面我们将详细探讨...

    DelphiXE8FMX工程实现无边框托动(FMX内部方法)

    2. **重写HitTest方法**:在自定义的TForm子类中,重写HitTest方法,确保当鼠标在窗体的任何位置时,都返回HTCAPTION,这样鼠标点击任何地方都能像标题栏一样拖动窗体。 3. **处理OnMouseMove事件**:当鼠标按下并...

    拖动没有标题栏的窗口

    通过分析和运行这个代码,可以更好地理解拖动无标题栏窗口的实现细节。 总的来说,"拖动没有标题栏的窗口"这一技术涉及到Windows操作系统底层的消息处理、窗口样式设置、以及图形绘制。开发者需要对Windows API有...

    DELPHI窗口区域拖动

    在Delphi编程中,实现窗口区域拖动是一项常见的任务,特别是在开发桌面应用程序时。窗口拖动功能使得用户可以通过鼠标点击并移动来改变窗口的位置。在本文中,我们将深入探讨如何在Delphi中实现这一功能,主要关注...

    delphi 无标题调整大小

    在Delphi编程环境中,"无标题调整大小"通常是指创建没有标准标题栏的窗口,并允许用户通过拖动边界来调整其大小。这种设计通常用于自定义界面或创建无边框的对话框。以下是对这个主题的详细解释: 一、创建无标题...

    计算机软件-编程源码-Delphi6编程大师_界面_实现Winamp形式窗口拖动的方法.zip

    本资源聚焦于使用Delphi6进行界面设计和实现Winamp形式的窗口拖动功能,这对于任何希望创建具有独特用户交互体验的软件开发者来说都是一个重要的学习资料。 在Delphi6中,实现类似Winamp的窗口拖动功能,主要是通过...

    Delphi 不用标题栏也移动窗体.rar

    总结一下,"Delphi 不用标题栏也移动窗体"是一个关于如何在无标题栏的Delphi窗体中实现用户交互移动的技术,通过自定义鼠标事件处理和窗体位置调整来实现。这种方法允许开发者创造出更具有个性化的用户界面,同时...

    delphi图像拖动demo 源码

    标题中的“delphi图像拖动demo源码”指的是一个使用Delphi编程语言开发的示例程序,该程序展示了如何在应用程序中实现图像的拖放功能。Delphi是一种基于Object Pascal的集成开发环境(IDE),广泛用于创建Windows...

    Delphi 无边框窗口的实现

    使用Delphi源码实现一个无边框窗口,把标题栏去掉了,同时也去掉了标题栏上的最大化、最小化和关闭按钮,测试发现,这个无标题栏无边框的窗体不能拖动,要是能拖动就更好了。 运行环境:Windows/Delphi7

    delphi 悬浮窗体

    在Delphi编程环境中,"悬浮窗体"是一种特殊类型的窗口,它可以自由地浮动在其他应用程序之上,不受父窗口的限制,通常用于显示实时信息或工具提示。本篇将深入探讨如何在Delphi7中实现一个简单的悬浮窗体,并讨论...

Global site tag (gtag.js) - Google Analytics