[发明专利]基于Windows系统的对象拖拽实现方法及其系统有效
申请号: | 201010576351.9 | 申请日: | 2010-12-07 |
公开(公告)号: | CN102566983A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 杨洋;黄飞跃;刘元芳;傅斌 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京鑫媛睿博知识产权代理有限公司 11297 | 代理人: | 龚家骅 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 windows 系统 对象 实现 方法 及其 | ||
1.一种基于Windows系统的对象拖拽实现方法,应用于使用未基于Windows标准控件实现的应用程序,其特征在于,包括以下步骤:
在所述应用程序的底层窗口绑定第一对象,在该应用程序中各可接受拖拽的窗口绑定第二对象;其中,所述第一对象为Windows CWnd,所述第二对象为非Windows标准对象,所述第一对象和所述第二对象中定义有指向鼠标事件处理函数的鼠标事件入口函数;
在拖拽过程中,当根据鼠标当前位置和所述应用程序的底层窗口位置,判断拖拽是在所述应用程序内部进行时,向所述应用程序内部的目标窗口发送拖拽消息,使目标窗口根据与其绑定的第二对象调用相应的鼠标事件处理函数进行相应处理;
当根据鼠标当前位置和所述应用程序的底层窗口位置判断拖拽是从所述应用程序到其他应用程序时,停止向所述应用程序内部各可接受拖拽的窗口发送拖拽消息,并以与所述应用程序的底层窗口绑定的CWnd对象作为发起源,发送全局拖拽消息,以使所述其他应用程序根据所述拖拽消息调用相应的鼠标事件处理函数进行相应处理。
2.如权利要求1所述的方法,其特征在于,所述第二对象中定义有拖拽开始事件入口函数;
所述目标窗口根据与其绑定的第二对象调用相应的鼠标事件处理函数进行相应处理,包括:
所述目标窗口在接收到表示拖拽开始的鼠标消息时,根据与其绑定的第二对象中定义的拖拽开始事件入口函数,通过调用对应的拖拽开始处理函数,将被拖拽对象的数据存储于剪贴板。
3.如权利要求1所述的方法,其特征在于,所述第二对象中定义有拖拽进行事件入口函数;
所述目标窗口根据与其绑定的第二对象调用相应的鼠标事件处理函数进行相应处理,包括:
所述目标窗口在接收到表示拖拽进行的鼠标消息时,根据与其绑定的第二对象中定义的拖拽进行事件入口函数,通过调用对应的拖拽进行处理函数,使用剪贴板中存储的数据绘制被拖拽对象。
4.如权利要求2或3所述的方法,其特征在于,所述第二对象中还定义有拖拽结束事件入口函数;
所述目标窗口根据与其绑定的第二对象调用相应的鼠标事件处理函数进行相应处理,包括:
所述目标窗口在接收到表示拖拽结束的鼠标消息时,根据与其绑定的第二对象中定义的拖拽结束事件入口函数,通过调用对应的拖拽结束处理函数进行相应处理。
5.如权利要求1所述的方法,其特征在于,该方法还包括:
当根据鼠标当前位置和所述应用程序的底层窗口位置判断拖拽是从其他应用程序到所述应用程序时,停止发送全局拖拽消息,向所述应用程序内部的目标窗口发送拖拽消息,使所述应用程序内部的目标窗口根据与其绑定的第二对象调用相应的鼠标事件处理函数进行相应处理。
6.一种基于Windows系统的对象拖拽实现系统,应用于使用未基于Windows标准控件实现的应用程序,其特征在于,所述系统包括:
注册模块,用于在所述应用程序的底层窗口绑定第一对象,在该应用程序中各可接受拖拽的窗口绑定第二对象;其中,所述第一对象为Windows CWnd,所述第二对象为非Windows标准对象,所述第一对象和所述第二对象中定义有指向鼠标事件处理函数的鼠标事件入口函数;
判断模块,用于在拖拽过程中,根据鼠标当前位置和所述应用程序的底层窗口位置,判断拖拽是在所述应用程序内部进行,还是从所述应用程序到其他应用程序;
处理模块,用于当所述判断模块判断拖拽是在所述应用程序内部进行时,向所述应用程序内部的目标窗口发送拖拽消息,使目标窗口根据与其绑定的第二对象调用相应的鼠标事件处理函数进行相应处理;当所述判断模块判断拖拽是从所述应用程序到其他应用程序时,停止向所述应用程序内部各可接受拖拽的窗口发送拖拽消息,并以与所述应用程序的底层窗口绑定的CWnd对象作为发起源,发送全局拖拽消息,以使所述其他应用程序根据所述拖拽消息调用相应的鼠标事件处理函数进行相应处理。
7.如权利要求6所述的系统,其特征在于,所述第二对象中定义有拖拽开始事件入口函数;
所述处理模块具体用于,当所述目标窗口在接收到表示拖拽开始的鼠标消息时,根据与其绑定的第二对象中定义的拖拽开始事件入口函数,通过调用对应的拖拽开始处理函数,将被拖拽对象的数据存储于剪贴板。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010576351.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多任务并行调度机制
- 下一篇:安装组件及其机体