Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法_Delphi

本文实例讲述了Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法。分享给大家供大家参考。具体实现方法如下:

const
 WM_MouseEnter = $B013;
 WM_MouseLeave = $B014;
type
 TfrmMain = class(TForm)
  .
  .
 Timer1: TTimer;
 procedure Timer1Timer(Sender: TObject);
 protected
 procedure WMMouseEnter(var Msg: TMessage); message WM_MouseEnter;
 end;
implementation
{$R *.dfm}
procedure TfrmMain.WMMouseEnter(var Msg: TMessage);
begin
 if(Top<0) then
 begin
 Top := 0;
 //为保证下拉窗体后呈现在最前面
 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
 //将窗体推到最前
 SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
 //然后取消窗体最前
 end;
 Timer1.Enabled := True;
end;
//依赖定时器定时检查鼠标是否还在窗体范围内,
//这样此能避免因为快速移动鼠标而丢失MOUSELEAVE事件
procedure TfrmMain.Timer1Timer(Sender: TObject);
var
 rc:TRECT;
 pt:TPOINT;
begin
 GetWindowRect(self.Handle,rc); //取窗体的矩形区域
 GetCursorPos(pt); //取得当前鼠标所在位置
 if(not PtInRect(rc,pt)) then //如果鼠标不在窗体范围内
 begin
  if(Top = 0) then
  //如果目前窗体正吸附在屏幕上沿,则上移隐藏窗体
  begin
   Top := 0-Height+2;
  end;
  Timer1.Enabled := False; //窗体隐藏后定时器关闭
  SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
  //将窗体推到最前
 end;
end;

希望本文所述对大家的Delphi程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索delphi
, 鼠标滑过
, 窗体
, 显示
隐藏
delphi 隐藏窗体、delphi 隐藏主窗体、delphi 窗体自动隐藏、delphi 模态窗体隐藏、鼠标滑过显示隐藏层,以便于您获取更多的相关知识。

时间: 2024-10-29 10:47:39

Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法_Delphi的相关文章

鼠标滑过超链接自动点击代码

链接|鼠标 有的站点上的超链接,当鼠标移上去时就会自动点击,其实很简单就是调用了一个函数代码而已.下面就是实现效果所需代码:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>鼠标滑过超链接自动点击代码</title> <script language="JavaScr

Delphi实现Listbox中的item根据内容显示不同颜色的方法_Delphi

本文简述了Delphi实现Listbox中的item根据内容显示不同颜色的方法,实现步骤如下: ListBox1 的 Style 属性改为 lbOwnerDrawVariable 在ListBox的OnDrawItem事件裡,根据item的值,改变Canvas属性 示例代码如下: procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);

JQuery实现鼠标滑过显示导航下拉列表_jquery

当网站导航栏项目很多的时候,我们往往是将同一级目录下的栏目先隐藏起来.当用户的鼠标滑过时则显示出来.这就是用javascript实现的一个导航栏下拉列表.小编一步步给大家讲解.值得注意的是我们使用的是Javascript的一个框架Jquery来实现的.所以,你在使用的时候必须要下载Jquery. 先建立HTML代码 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="

[求助].Net 3.5 ,如何在鼠标滑过后,显示曲线中的坐标值?

问题描述 大侠,我现在利用Datapoint在PictureBox上画了一组曲线,想增加一个功能,即在鼠标滑过曲线时,可以显示DataPoint的纵横坐标值:网上说有ToolTip可以,但是都是.Net4.0的应用,但我现在用的是.Net3.5,如何做到呢?请大侠写两句:谢谢! 解决方案 解决方案二:3.5中也有tooltipshow显示,hide隐藏解决方案三:想要处理通用的UI事件(例如鼠标滑过),那么你就的曲线.拐点都应该用现成的Polyline.Rectangle等控件(建议你直接从WP

Delphi实现获取句柄并发送消息的方法_Delphi

本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil,PChar('窗口的标题'));//查到窗体句柄 查找子窗体: childHandle := FindWindowEx(handle,0,'子窗体类','子窗体标题'); 另外有个枚举子窗体的API, EnumChildWindows(主创体句柄,@回调函数,用户参数); 用这个函数需要自己写一个回调的函数,比如: function Enu

Delphi下QQ窗体自动隐藏探索

腾讯QQ是当前流行的网络聊天工具之一,由于它在应用设计上有很多独特之处,所以也吸引了很多程序员对之进行研究和模仿.在这里,我将利用Delphi对QQ的窗体自动隐藏效果提出自己的实现方法. 一.问题的提出 熟悉QQ使用的朋友都知道,当QQ窗体区域超出屏幕四边时,窗体就会自动"消失",只留下窗体一边的小部分显露在桌面上.当用鼠标移动到显露部分之上,窗体就会在隐藏位置重新完整显示:但当鼠标离开窗体区域后,窗体便会重新进入隐藏状态. 对隐藏的全过程进行分析,可以得出两点推测:第一,窗体隐藏的处

js-请问如何通过JS或者jQuery实现鼠标滑到某个div上 页面向左滑动 滑出则停止 向右同理

问题描述 请问如何通过JS或者jQuery实现鼠标滑到某个div上 页面向左滑动 滑出则停止 向右同理 如题. 我在页面上弄了两个div,一个是向左按钮一个是向右按钮. 页面属于左右滑动型. 如何实现鼠标滑到向左的那个div上 页面向左滑动 滑出则停止 向右同理? 谢谢各位大神!拜谢!! 拜托各位看清我的问题好吗,头两个答案根本牛头不对马嘴>.< 我说的是让页面滑动.另外,如果有代码最好--谢谢 解决方案 .on{height:50px;background:#eee}.dd{backgrou

怎么通过“适配器”获得窗体上鼠标选择的listview单元格的坐标?

问题描述 怎么通过"适配器"获得窗体上鼠标选择的listview单元格的坐标? 怎么通过"适配器"获得窗体上鼠标选择的listview单元格的坐标?怎么才能得到坐标相对屏幕的距离?

CSS+JS网页制作实例:新闻列表鼠标滑过显示详情

文章简介:新闻列表鼠标滑过,显示单条详情. <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>demo</title><style type="text/css">body { font-size:12px;