著录项信息
专利名称 | 一种鼠标跟随的实现方法和实现装置 |
申请号 | CN201110421401.0 | 申请日期 | 2011-12-15 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-06-27 | 公开/公告号 | CN102520954A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/44 | IPC分类号 | G;0;6;F;9;/;4;4;;;G;0;6;F;3;/;0;3;3查看分类表>
|
申请人 | 北京新媒传信科技有限公司 | 申请人地址 | 北京市海淀区万泉庄路28号万柳新贵大厦A座6层602室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京新媒传信科技有限公司 | 当前权利人 | 北京新媒传信科技有限公司 |
发明人 | 方顺豹 |
代理机构 | 北京市隆安律师事务所 | 代理人 | 权鲜枝 |
摘要
本发明公开了一种鼠标跟随的实现方法和实现装置,该方法包括:记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;绘制对话框,并根据所确定的鼠标跟随内容的显示位置在该对话框的背景中绘制鼠标跟随内容;当捕获到系统消息WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,重新绘制整个对话框。本发明的技术方案能够实现在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。
1.一种鼠标跟随的实现方法,其特征在于,该方法包括:
A,在第一次捕获WM_MOUSEMOVE消息,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;
B,绘制对话框,并根据所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容;
C,在之后捕获到系统消息WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,进入步骤B;
所述步骤B包括:
截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC;
创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上;
创建第二个内存DC,将所述对话框绘制到第二内存DC上;
将第一内存DC绘制到所述系统DC上;
将第二内存DC绘制到所述系统DC上;
刷新所述对话框;
所述C步骤中的当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离包括:
当捕获到WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离。
2.根据权利要求1所述的方法,其特征在于,
当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过N个像素时,确定鼠标移动的距离超过预设距离;
其中N为自然数。
3.根据权利要求2所述的方法,其特征在于,
N为10。
4.一种鼠标跟随的实现装置,其特征在于,该装置包括:位置确定模块、绘制模块和变更判断模块;
所述位置确定模块,用于在第一次捕获WM_MOUSEMOVE消息,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,并触发所述绘制模块的操作;
所述变更判断模块,用于在之后捕获到WM_MOUSEMOVE消息时,根据所述位置确定模块中记录的鼠标位置,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,并在判断出鼠标移动的距离超过预设距离时触发所述位置确定模块的操作;
所述绘制模块,用于绘制对话框,并根据所述位置确定模块所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容;
所述绘制模块,用于截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC,创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上,创建第二个内存DC,将所述对话框绘制到第二内存DC上,将第一内存DC绘制到所述系统DC上,将第二内存DC绘制到所述系统DC上,刷新所述对话框;
所述变更判断模块,用于在捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离是否超过预设距离。
5.根据权利要求4所述的装置,其特征在于,
变更判断确定模块,用于在鼠标当前的位置与所述位置确定模块中记录的鼠标位置之间的横向或纵向距离超过N个像素时,确定鼠标移动距离超过预设距离;其中N为自然数。
6.根据权利要求5所述的装置,其特征在于,
N为10。
一种鼠标跟随的实现方法和实现装置\n技术领域\n[0001] 本发明涉及计算机多媒体信息显示技术领域,特别涉及一种鼠标跟随的实现方法和实现装置。\n背景技术\n[0002] 随着计算机硬件性能的不断提高,带动了各种UI(即:User Interface用户界面)技术的革新。特别在用户交互UI方面,各种赏心悦目的UI层出不穷,使用户在软件使用体验方面得到了大大的改善。通过这种友好的交互,不但提高了软件的品质,更提高了用户的忠诚度。可想而知,在未来,UI还是会作为软件开发的重中之重,对一个软件的好坏产生直接的影响。\n[0003] 在我们浏览某些网页或者操作某些flash时,我们经常能看到有一个小图标或者一段文字跟随鼠标在移动。但在桌面平台软件中,却没有此特效。\n发明内容\n[0004] 本发明提供了一种鼠标跟随的实现方法和装置,本发明的技术方案能够实现在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。\n[0005] 为达到上述目的,本发明的技术方案是这样实现的:\n[0006] 本发明公开了一种鼠标跟随的实现方法,该方法包括:\n[0007] A,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;\n[0008] B,绘制对话框,并根据所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容;\n[0009] C,当捕获到系统消息WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,进入步骤B。\n[0010] 在上述方法中,所述步骤B包括:\n[0011] 截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC;\n[0012] 创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上;\n[0013] 创建第二个内存DC,将所述对话框绘制到第二内存DC上;\n[0014] 将第一内存DC绘制到所述系统DC上;\n[0015] 将第二内存DC绘制到所述系统DC上;\n[0016] 刷新所述对话框。\n[0017] 在上述方法中,所述C步骤中的当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离包括:\n[0018] 当捕获到WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离。\n[0019] 在上述方法中,当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过N个像素时,确定鼠标移动的距离超过预设距离;其中N为自然数。\n[0020] 较佳地,N为10。\n[0021] 本发明还公开了一种鼠标跟随的实现装置,该装置包括:位置确定模块、绘制模块和变更判断模块;\n[0022] 所述位置确定模块,用于记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,并触发所述绘制模块的操作;\n[0023] 所述变更判断模块,用于在捕获到WM_MOUSEMOVE消息时,根据所述位置确定模块中记录的鼠标位置,判断鼠标移动的距离是否超过预设距离是则记录鼠标的当前位置,并在判断出鼠标移动的距离超过预设距离时触发所述位置确定模块的操作;\n[0024] 所述绘制模块,用于绘制对话框,并根据所述位置确定模块所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容。\n[0025] 在上述装置中,\n[0026] 所述绘制模块,用于截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC,创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上,创建第二个内存DC,将所述对话框绘制到第二内存DC上,将第一内存DC绘制到所述系统DC上,将第二内存DC绘制到所述系统DC上,刷新所述对话框。。\n[0027] 在上述装置中,\n[0028] 所述变更判断模块,用于在捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离是否超过预设距离。\n[0029] 在上述装置中,\n[0030] 所述变更判断确定模块,用于在鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离超过N个像素时,确定鼠标移动距离预设距离;其中N为自然数。\n[0031] 较佳地,N为10。\n[0032] 综上可见,在本发明的技术方案中,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;绘制对话框,并根据所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容;当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,重新绘制,实现了在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。\n附图说明\n[0033] 图1是本发明实施例中的鼠标跟随的实现方法的流程图;\n[0034] 图2是本发明实施例中的绘制鼠标跟随内容的流程图;\n[0035] 图3是本发明实施例中的鼠标跟随实现装置的结构图。\n具体实施方式\n[0036] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。\n[0037] 本方案立足Windows桌面平台软件,实现一张图片或一段文字随着鼠标的移动而移动的特效,为完成以上特效,可采用以下方法。图1是本发明实施例中的鼠标跟随的实现方法的流程图,如图1所述,该方法包括以下步骤:\n[0038] 101,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;\n[0039] 102,绘制对话框,并根据所确定的鼠标跟随内容的显示位置在该对话框的背景中绘制鼠标跟随内容;\n[0040] 103,当捕获到系统消息(WM_MOUSEMOVE消息)时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,进入步骤102。当捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离。当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过10像素时,确定鼠标移动的距离超过预设距离。\n[0041] 采用上述方法的目的是实际上是解决实现图片在对话框背景的绘制和实现图片在对话框内跟随鼠标的移动而移动两个问题。\n[0042] 传统的Windows绘制对话框的方式无法在对话框的背景中绘制鼠标跟随内容,因此,可使用自绘对话框的方式来实现在对话框的背景中绘制鼠标跟随内容,图1是本发明实施例中的绘制鼠标跟随内容的流程图,如图1所示,在对话框的背景中绘制鼠标跟随内容的方法可包括以下步骤:\n[0043] 201,截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC(device context,设备上下文,或者叫设备内容)。其中,DC是一个结构体,它定义了图形对象的参数设置以及它们的属性,还有影响绘制的模式选择。作为C语言,如果要在Windows环境绘图,那么就要自己动手实现显卡驱动,显示器驱动......微软为了方便程序实现,将各种与绘图相关的数据封装在DC这种数据结构中。在程序实现中调用这种数据,由系统自动获取硬件的信息,然后自动填充DC这种结构体。\n[0044] 202,创建第一内存DC,将鼠标跟随内容绘制到第一内存DC上。\n[0045] 203,创建第二个内存DC,将该对话框绘制到第二内存DC上,这个方式的自绘对话框为Windows标准处理的自绘对话框,按照Windows标准使用方式来进行自绘即可,即:将所有对话框需要显示的内容全部绘制到这个内存DC上。\n[0046] 204,将第一内存DC绘制到所述系统DC上。\n[0047] 205,将第二内存DC绘制到所述系统DC上。\n[0048] 206,刷新该对话框。\n[0049] 为实现鼠标跟随内容在对话框内跟随鼠标的移动而移动这个效果,需要捕获对话框的WM_MOUSEMOVE消息来进行处理。图2是本发明实施例中的实现鼠标跟随内容随鼠标移动的流程图,如图2所示,具体处理分为两部分:\n[0050] 第一部分:在第一次捕获WM_MOUSEMOVE消息时,记录鼠标的位置,设置图片显示的位置为鼠标的当前位置。\n[0051] 第二部分:在之后捕获WM_MOUSEMOVE消息,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置然后重新绘制对话框。也就是,对比之前记录的鼠标位置,当捕获到WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离,当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过N个像素时,确定鼠标移动的距离超过预设距离,此时,重新设置图片位置为鼠标的当前位置,并记录鼠标的当前位置。然后重新绘制对话框。这里N为自然数,在本发明的一个较佳实施例中,N为10。\n[0052] 图3是本发明实施例中的鼠标跟随实现装置的结构图,如图3所示,该装置包括:\n位置确定模块301、绘制模块302和变更判断模块303;\n[0053] 位置确定模块301,用于记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,并触发绘制模块302的操作;\n[0054] 变更判断模块303,用于在捕获到WM_MOUSEMOVE消息时,根据位置确定模块301中记录的鼠标位置,判断鼠标移动的距离是否超过预设距离是则记录鼠标的当前位置,并在确定超过预设距离时触发位置确定模块301的操作;\n[0055] 绘制模块302,用于绘制对话框,并根据位置确定模块301所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容。在上述装置中,\n[0056] 绘制模块302,用于截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC,创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上,创建第二个内存DC,将所述对话框绘制到第二内存DC上,将第一内存DC绘制到所述系统DC上,将第二内存DC绘制到所述系统DC上,刷新所述对话框。。\n[0057] 在上述装置中,\n[0058] 变更判断模块303,用于在捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离是否超过预设距离。\n[0059] 在上述装置中,\n[0060] 变更判断确定模块303,用于在鼠标当前的位置与所述位置确定模块301中记录的鼠标位置之间的横向或纵向距离超过N个像素时,确定鼠标移动距离超过预设距离;其中N为自然数。较佳地,N为10。\n[0061] 综上可见,本发明公开了一种鼠标跟随的实现方法和装置,该方法包括:记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;绘制对话框,并根据所确定的鼠标跟随内容的显示位置在该对话框的背景中绘制鼠标跟随内容;当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,重新绘制整个对话框。本发明的技术方案能够实现在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。\n[0062] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
法律信息
- 2020-09-15
专利权人的姓名或者名称、地址的变更
专利权人由北京新媒传信科技有限公司变更为北京新媒传信科技有限公司
地址由100089 北京市海淀区万泉庄路28号万柳新贵大厦A座6层602室变更为100080 北京市海淀区海淀大街34号8层810室
- 2015-04-22
- 2012-09-05
实质审查的生效
IPC(主分类): G06F 9/44
专利申请号: 201110421401.0
申请日: 2011.12.15
- 2012-06-27
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-04-13
|
2010-11-24
| | |
2
| |
2011-04-13
|
2010-12-07
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |