【源码】鼠标双击

直接把这段代码放在你需要双击的物体身上

using UnityEngine;
using System.Collections;
using System;
//  直接拖到需要双击的物体身上//
public class DoubleClickRotate  : MonoBehaviour {
	DateTime t1,t2;
	int i=1;
	// Use this for initialization
	void Start () {
		t1=DateTime.Now;
	}
	
	// Update is called once per frame
	void Update () {
		
	}
	void OnMouseDown(){ 
		Debug.Log("单击事件");
		if(i==1)  {  
			t2=DateTime.Now;//系统当前的时间//

			if(t2-t1<new TimeSpan(0,0,0,0,200))
			{ 
				Debug.Log("双击事件");
			}  
			t1=t2;  }
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
讲一下实现的原理和我研究的路上碰到的阻碍: 想要实现这个功能: 问1:首先要获取鼠标双击桌面的消息。 问2:判断是双击的桌面图标还是双击的桌面空白区域。 答1:第一个问题是通过hook全局鼠标来实现判断,hook了全局鼠标后,通过判断鼠标当前指向的窗口句柄来判断鼠标是否在桌面双击。 答2:由于桌面是一个超级列表框控件,通过 精易模块 里的外部超级列表框类,绑定桌面的超级列表框句柄,通过取鼠标指针所在的索引来判断当前鼠标是在图标上,还是在空白区域。 然后通过隐藏和显示SyListView32这个桌面句柄就能达到双击桌面隐藏和显示桌面图标的效果。 接下来讲下遇到的问题: 本来是想直接获取桌面句柄的鼠标移动,但是不会hook桌面句柄或者是截获桌面句柄的消息,所以只能通过hook全局的鼠标消息来实现,如果有谁懂直接获取桌面的双击消息,可以发个例子出来。 通过外部超级列表框类,可以获取鼠标放在哪个桌面图标上,还有通过外部超级列表框.取表项位置 (, )取出桌面图标的坐标,但是通过外部超级列表框.取标题 (, , )这个命令,无法取出桌面图标的名称,如果有谁知道怎么通过外部超级列表框取桌面图标的名称的也可以发个例子。 有人可能会说桌面右键菜单里有显示隐藏图标,我觉得那样太麻烦,双击桌面的速度最快也最方便,如果有谁有更好的实现方法也可以分享出来。 编译的时候为了缩小软件的体积,用了黑月的界面创建,用汇编模式编译,编译完用了upx压缩,最后软件只有74k,其中一半还是程序图标的体积,源码只使用了精易模块,自己替换成自己的精易。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值