CN102520954B - 一种鼠标跟随的实现方法和实现装置 - Google Patents
一种鼠标跟随的实现方法和实现装置 Download PDFInfo
- Publication number
- CN102520954B CN102520954B CN201110421401.0A CN201110421401A CN102520954B CN 102520954 B CN102520954 B CN 102520954B CN 201110421401 A CN201110421401 A CN 201110421401A CN 102520954 B CN102520954 B CN 102520954B
- Authority
- CN
- China
- Prior art keywords
- mouse
- dialog box
- internal memory
- following content
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种鼠标跟随的实现方法和实现装置,该方法包括:记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;绘制对话框,并根据所确定的鼠标跟随内容的显示位置在该对话框的背景中绘制鼠标跟随内容;当捕获到系统消息WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,重新绘制整个对话框。本发明的技术方案能够实现在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。
Description
技术领域
本发明涉及计算机多媒体信息显示技术领域,特别涉及一种鼠标跟随的实现方法和实现装置。
背景技术
随着计算机硬件性能的不断提高,带动了各种UI(即:User Interface用户界面)技术的革新。特别在用户交互UI方面,各种赏心悦目的UI层出不穷,使用户在软件使用体验方面得到了大大的改善。通过这种友好的交互,不但提高了软件的品质,更提高了用户的忠诚度。可想而知,在未来,UI还是会作为软件开发的重中之重,对一个软件的好坏产生直接的影响。
在我们浏览某些网页或者操作某些flash时,我们经常能看到有一个小图标或者一段文字跟随鼠标在移动。但在桌面平台软件中,却没有此特效。
发明内容
本发明提供了一种鼠标跟随的实现方法和装置,本发明的技术方案能够实现在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种鼠标跟随的实现方法,该方法包括:
A,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;
B,绘制对话框,并根据所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容;
C,当捕获到系统消息WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,进入步骤B。
在上述方法中,所述步骤B包括:
截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC;
创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上;
创建第二个内存DC,将所述对话框绘制到第二内存DC上;
将第一内存DC绘制到所述系统DC上;
将第二内存DC绘制到所述系统DC上;
刷新所述对话框。
在上述方法中,所述C步骤中的当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离包括:
当捕获到WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离。
在上述方法中,当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过N个像素时,确定鼠标移动的距离超过预设距离;其中N为自然数。
较佳地,N为10。
本发明还公开了一种鼠标跟随的实现装置,该装置包括:位置确定模块、绘制模块和变更判断模块;
所述位置确定模块,用于记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,并触发所述绘制模块的操作;
所述变更判断模块,用于在捕获到WM_MOUSEMOVE消息时,根据所述位置确定模块中记录的鼠标位置,判断鼠标移动的距离是否超过预设距离是则记录鼠标的当前位置,并在判断出鼠标移动的距离超过预设距离时触发所述位置确定模块的操作;
所述绘制模块,用于绘制对话框,并根据所述位置确定模块所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容。
在上述装置中,
所述绘制模块,用于截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC,创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上,创建第二个内存DC,将所述对话框绘制到第二内存DC上,将第一内存DC绘制到所述系统DC上,将第二内存DC绘制到所述系统DC上,刷新所述对话框。。
在上述装置中,
所述变更判断模块,用于在捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离是否超过预设距离。
在上述装置中,
所述变更判断确定模块,用于在鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离超过N个像素时,确定鼠标移动距离预设距离;其中N为自然数。
较佳地,N为10。
综上可见,在本发明的技术方案中,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;绘制对话框,并根据所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容;当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,重新绘制,实现了在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。
附图说明
图1是本发明实施例中的鼠标跟随的实现方法的流程图;
图2是本发明实施例中的绘制鼠标跟随内容的流程图;
图3是本发明实施例中的鼠标跟随实现装置的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本方案立足Windows桌面平台软件,实现一张图片或一段文字随着鼠标的移动而移动的特效,为完成以上特效,可采用以下方法。图1是本发明实施例中的鼠标跟随的实现方法的流程图,如图1所述,该方法包括以下步骤:
101,记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;
102,绘制对话框,并根据所确定的鼠标跟随内容的显示位置在该对话框的背景中绘制鼠标跟随内容;
103,当捕获到系统消息(WM_MOUSEMOVE消息)时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,进入步骤102。当捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离。当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过10像素时,确定鼠标移动的距离超过预设距离。
采用上述方法的目的是实际上是解决实现图片在对话框背景的绘制和实现图片在对话框内跟随鼠标的移动而移动两个问题。
传统的Windows绘制对话框的方式无法在对话框的背景中绘制鼠标跟随内容,因此,可使用自绘对话框的方式来实现在对话框的背景中绘制鼠标跟随内容,图1是本发明实施例中的绘制鼠标跟随内容的流程图,如图1所示,在对话框的背景中绘制鼠标跟随内容的方法可包括以下步骤:
201,截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC(device context,设备上下文,或者叫设备内容)。其中,DC是一个结构体,它定义了图形对象的参数设置以及它们的属性,还有影响绘制的模式选择。作为C语言,如果要在Windows环境绘图,那么就要自己动手实现显卡驱动,显示器驱动......微软为了方便程序实现,将各种与绘图相关的数据封装在DC这种数据结构中。在程序实现中调用这种数据,由系统自动获取硬件的信息,然后自动填充DC这种结构体。
202,创建第一内存DC,将鼠标跟随内容绘制到第一内存DC上。
203,创建第二个内存DC,将该对话框绘制到第二内存DC上,这个方式的自绘对话框为Windows标准处理的自绘对话框,按照Windows标准使用方式来进行自绘即可,即:将所有对话框需要显示的内容全部绘制到这个内存DC上。
204,将第一内存DC绘制到所述系统DC上。
205,将第二内存DC绘制到所述系统DC上。
206,刷新该对话框。
为实现鼠标跟随内容在对话框内跟随鼠标的移动而移动这个效果,需要捕获对话框的WM_MOUSEMOVE消息来进行处理。图2是本发明实施例中的实现鼠标跟随内容随鼠标移动的流程图,如图2所示,具体处理分为两部分:
第一部分:在第一次捕获WM_MOUSEMOVE消息时,记录鼠标的位置,设置图片显示的位置为鼠标的当前位置。
第二部分:在之后捕获WM_MOUSEMOVE消息,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置然后重新绘制对话框。也就是,对比之前记录的鼠标位置,当捕获到WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离是否超过预设距离,当鼠标当前的位置与记录的鼠标位置之间的横向距离或纵向距离超过N个像素时,确定鼠标移动的距离超过预设距离,此时,重新设置图片位置为鼠标的当前位置,并记录鼠标的当前位置。然后重新绘制对话框。这里N为自然数,在本发明的一个较佳实施例中,N为10。
图3是本发明实施例中的鼠标跟随实现装置的结构图,如图3所示,该装置包括:位置确定模块301、绘制模块302和变更判断模块303;
位置确定模块301,用于记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,并触发绘制模块302的操作;
变更判断模块303,用于在捕获到WM_MOUSEMOVE消息时,根据位置确定模块301中记录的鼠标位置,判断鼠标移动的距离是否超过预设距离是则记录鼠标的当前位置,并在确定超过预设距离时触发位置确定模块301的操作;
绘制模块302,用于绘制对话框,并根据位置确定模块301所确定的鼠标跟随内容的显示位置在所述对话框的背景中绘制鼠标跟随内容。在上述装置中,
绘制模块302,用于截获所述对话框的WM_PAINT消息,根据WM_PAINT消息的参数记录系统设备上下文DC,创建第一内存DC,将所述鼠标跟随内容绘制到第一内存DC上,创建第二个内存DC,将所述对话框绘制到第二内存DC上,将第一内存DC绘制到所述系统DC上,将第二内存DC绘制到所述系统DC上,刷新所述对话框。。
在上述装置中,
变更判断模块303,用于在捕获WM_MOUSEMOVE消息时,判断鼠标当前的位置与记录的鼠标位置之间的横向或纵向距离是否超过预设距离。
在上述装置中,
变更判断确定模块303,用于在鼠标当前的位置与所述位置确定模块301中记录的鼠标位置之间的横向或纵向距离超过N个像素时,确定鼠标移动距离超过预设距离;其中N为自然数。较佳地,N为10。
综上可见,本发明公开了一种鼠标跟随的实现方法和装置,该方法包括:记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置;绘制对话框,并根据所确定的鼠标跟随内容的显示位置在该对话框的背景中绘制鼠标跟随内容;当捕获到WM_MOUSEMOVE消息时,判断鼠标移动的距离是否超过预设距离,是则记录鼠标的当前位置,确定鼠标跟随内容的显示位置为鼠标的当前位置,重新绘制整个对话框。本发明的技术方案能够实现在桌面平台软件中一个小图标或者一段文字跟随鼠标在移动,使用户在软件使用体验方面得到了大大的改善,提高了软件的品质。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (6)
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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110421401.0A CN102520954B (zh) | 2011-12-15 | 2011-12-15 | 一种鼠标跟随的实现方法和实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110421401.0A CN102520954B (zh) | 2011-12-15 | 2011-12-15 | 一种鼠标跟随的实现方法和实现装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520954A CN102520954A (zh) | 2012-06-27 |
CN102520954B true CN102520954B (zh) | 2015-04-22 |
Family
ID=46291896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110421401.0A Active CN102520954B (zh) | 2011-12-15 | 2011-12-15 | 一种鼠标跟随的实现方法和实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102520954B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677325A (zh) * | 2012-09-03 | 2014-03-26 | 联想(北京)有限公司 | 一种输入方法及装置 |
CN103677493B (zh) * | 2012-09-06 | 2018-03-23 | 腾讯科技(深圳)有限公司 | 弹出窗显示方法和装置 |
CN104063241B (zh) * | 2014-06-05 | 2017-07-18 | 广东威创视讯科技股份有限公司 | 宿主程序与com组件的图像同步显示的方法与系统 |
CN106708356B (zh) * | 2016-08-31 | 2019-03-01 | 腾讯科技(深圳)有限公司 | 提示标签展示方法和装置 |
CN106775316B (zh) * | 2016-12-16 | 2020-02-18 | 四川长虹电器股份有限公司 | flash图片编辑器中浮动面板跟随鼠标缓动的方法 |
CN110908550B (zh) * | 2018-09-17 | 2022-11-08 | 北京京东尚科信息技术有限公司 | 光标悬停状态下的操作处理方法和装置 |
CN111327919A (zh) * | 2020-03-23 | 2020-06-23 | 广州华多网络科技有限公司 | 虚拟礼物反馈处理的方法、装置、系统、设备及存储介质 |
CN114063846A (zh) * | 2021-11-12 | 2022-02-18 | 深圳市网旭科技有限公司 | 窗口控制方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012820A (zh) * | 2010-12-07 | 2011-04-13 | 福州锐达数码科技有限公司 | 一种在Windows操作系统中实现虚拟页面的方法 |
CN102012811A (zh) * | 2010-11-24 | 2011-04-13 | 广东威创视讯科技股份有限公司 | 一种桌面标注与互动方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1644816B1 (en) * | 2003-06-20 | 2016-09-14 | Apple Inc. | Computer interface having a virtual single-layer mode for viewing overlapping objects |
-
2011
- 2011-12-15 CN CN201110421401.0A patent/CN102520954B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012811A (zh) * | 2010-11-24 | 2011-04-13 | 广东威创视讯科技股份有限公司 | 一种桌面标注与互动方法 |
CN102012820A (zh) * | 2010-12-07 | 2011-04-13 | 福州锐达数码科技有限公司 | 一种在Windows操作系统中实现虚拟页面的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102520954A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102520954B (zh) | 一种鼠标跟随的实现方法和实现装置 | |
US11012740B2 (en) | Method, device, and storage medium for displaying a dynamic special effect | |
CN101901274B (zh) | 实现页面特效的方法及装置 | |
US8582952B2 (en) | Method and apparatus for identifying video transitions | |
WO2020108402A1 (zh) | 课件录制和播放方法、装置、智能交互平板及存储介质 | |
US11528535B2 (en) | Video file playing method and apparatus, and storage medium | |
US10083050B2 (en) | User interface usage simulation generation and presentation | |
CN109634603B (zh) | 一种基于Canvas画布的H5页面制作方法和装置 | |
CN104184904A (zh) | 一种自定义录制区域的手机屏幕录制方法 | |
CN103164121B (zh) | 一种终端软件界面展示的方法和装置 | |
CN108733296B (zh) | 书写笔迹的擦除方法、装置和设备 | |
WO2017181990A1 (zh) | 附加媒体信息的展示方法及装置 | |
CN104360788A (zh) | 透明标注方法和桌面书写控制方法 | |
CN103970427B (zh) | 网页页面的刷新方法和装置 | |
AU2019222974B2 (en) | Interfaces and techniques to retarget 2d screencast videos into 3d tutorials in virtual reality | |
US20110285727A1 (en) | Animation transition engine | |
CN102903052A (zh) | 一种移动广告播放方法 | |
CN110174978A (zh) | 数据处理方法、装置、智能交互平板及存储介质 | |
CN109636885A (zh) | 一种用于h5页面的序列帧动画制作方法和系统 | |
DE202017104855U1 (de) | Animieren eines Bildes zum Anzeigen, dass das Bild verschiebbar ist | |
CN104715700A (zh) | 一种电子沙盘系统 | |
CN112256191B (zh) | 智能黑板及其数据处理方法和装置,智能交互平板 | |
CN103577046A (zh) | 一种3d立体桌面系统及其实现方法 | |
JP6409429B2 (ja) | テキスト、ストローク、画像のダイレクトな動画修正システム及びプログラム | |
CN104125497A (zh) | 一种网页录像方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A room 602 Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. |