DragDetect
函数功能:该函数捕获并跟踪鼠标的移动直到用户松开左键、按下Esc。键或者将鼠标移动到围绕指定点的“拖动矩形”之外。拖动矩形的宽和高由函数GetSystemMetrics返回的SM_CXDRAG或SM_CYDRAG确定。
函数原型:BOOL DragDetect(HWND hwnd,POINT pt);
参数:
hwnd:接受鼠标输入的窗口的句柄。
pt:鼠标在屏幕坐标下的初始位置,此函数根据这个点来确定拖动矩形的坐标。
返回值:如果用户在按着鼠标左键时将鼠标移出了拖动矩形之外,则返回非零值;如果用户按着鼠标左键在拖动内移动鼠标,则返回值是零。
备注:拖动矩形的系统度量是可构造的,允许更大或更小的拖动矩形。
速查:Windows NT: 4.0及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetCapture
函数功能:该函数取得捕获了鼠标的窗口(如果存在)的句柄。在同一时刻,只有一个窗口能捕获鼠标;此时,该窗口接收鼠标的输入,无论光标是否在其范围内。
函数原型:HWND GetCapture(VOID)
参数:无。
返回值:返回值是与当前线程相关联的捕获窗口的句柄。如果当前线程里没有窗口捕获到鼠标,则返回NULL。
备注:返回NULL并不意味着系统里没有其他进程或线程捕获到鼠标,只表示当前线程没有捕获到鼠标。
速查:Windows NT:4.0及以上版本;Wiodows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetDoubleClickTime
函数功能:该函数取得鼠标的当前双击时间。一次双击是指对鼠标键的两次连击,第一次击键后在指定时间内击第二次。双击时间是指在双击中,第一次击键和第二次击键之间的最大毫秒数。
函数原型:UINT GetDoubleClickTime(VOID)
参数:无。
返回值:返回是当前双击时间,按毫秒计算。
速查:Windows NT:4.0及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetMouseMovePoints
函数原型:int GetMouseMovePoints(UINT cbSize,LPMOUSEMOVEPOlNT lppt,LPMOUSEMOVEPOINT
IpptBuf,int,nBufPoints,DWORD resolution);
参数:
cbSize:结构MOOSEMOVEPOINT的大小。
lppt:指向结构MOUSEMOVEPOINT的指针,该结构包含了有效的鼠标坐标(屏幕坐标)。也可以包含一个时间标记。

函数GetMouseMovePoints在鼠标坐标历史记录中查找一点。如果此函数查到该点,则返回包含提供点在内的在此之前的最后一个nBufPoints。如果应用程序提供一个时间标记,则函数GetMouseMovePoints将用它来区分记录于不同时间的两个相等的点。
应用程序使用从消息WM_MOOSEMOVE中接收的鼠标坐标来调用此函数,并把它们转换为屏幕坐标。
lpptBut:将接收点的缓冲区的指针。其大小至少应为cbsze· nBuffPoints。
nBufPoints:指定将取得的点的个数。
resolution:指定希望的分辨率。此参数可取下列值之一:
GMMP_USE_DISPLAY_POINTS:用显示分辨率取得点。
GMMP_USE_DRIVER_pOINTS:用驱动器分辨率取得点。在Windows
CE平台下,画笔驱动器的分辨率高于显示分辨率。这样,函数GetMouseMovePoints可被那些需要准确分辨率的应用程序使用。(如手写体识别软件或计算机辅助设计软件)。

返回值:如果函数调用成功,返回值是缓冲区里的点的数目。否则,函数返回C1。若想获得更多的错误信息,请调用GetlastError函数。函数GetLastError可能返回下面的错误代码。
GMMF_ERR_POINT_NOT_FOUNQ由lPPt指定的点找不到或不再存在于系统缓冲区中。

备注:系统至少保留着64个鼠标坐标及其时间标记。如果应用程序给GetMouseMovePoints提供了一个鼠标坐标,而该坐标存在于系统中的鼠标坐标历史记录中,则函数从历史坐标记录取得指定个数的坐标。也可以提供一个时间标记,用来区分历史记录中相同的点。
函数GetMouseMonePoints将返回实际发送给调用线程和其他线程的点。
速查:Windows NT:5.0及以上版本;Windows:98及以上版本;Windows
CE:2.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
mouse_event
函数功能:该函数综合鼠标击键和鼠标动作。
函数原型:VOID mouse_event(DWORD dwFlags,DWORD dx,DWORD dwFlags,OWORD dx,DWORD
dy, DWORD dwData, DWORD dwExtralnfo);
参数:
dwFlags:标志位集,指定点击按钮和鼠标动作的多种情况。此参数里的各位可以是下列值的任何合理组合:

MOOSE_EVENTF_ABSOLOTE:表明参数dX,dy含有规范化的绝对坐标。如果不设置此位,参数含有相对数据:相对于上次位置的改动位置。此标志可被设置,也可不设置,不管鼠标的类型或与系统相连的类似于鼠标的设备的类型如何。要得到关于相对鼠标动作的信息,参见下面备注部分。
MOOSEEVENTFMOVE:表明发生移动。
M00SEEVENTF_LEFTDOWN:表明接按下鼠标左键。
M00SEEVENTF_LEFTUP:表明松开鼠标左键。
MOOSEEVENTF_RIGHTDOWN:表明按下鼠标右键。
MOOSEEVENTF_RIGHTUP:表明松开鼠标右键。
MOOSEEVENTF_MIDDLEDOWN:表明按下鼠标中键。
MOOSEEVENTF_MIDDLEUP:表明松开鼠标中键。
MOOSEEVENTF_WHEEL:在Windows NT中如果鼠标有一个轮,表明鼠标轮被移动。移动的数量由dwData给出。

dx:指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOOSEEVENTF_ABSOLOTE的设置。给出的绝对数据作为鼠标的实际X坐标;给出的相对数据作为移动的mickeys数。一个mickey表示鼠标移动的数量,表明鼠标已经移动。

dy:指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOOSEEVENTF_ABSOLVTE的设置。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。

dwData:如果dwFlags为MOOSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。
如果dwFlagsS不是MOOSEEVENTF_WHEEL,则dWData应为零。
dwExtralnfo:指定与鼠标事件相关的附加32位值。应用程序调用函数GetMessgeExtrajnfo来获得此附加信息。
返回值:无。
备注:如果鼠标被移动,用设置MOUSEEVENTF_MOVE来表明,dX和dy保留移动的信息。给出的信息是绝对或相对整数值。

如果指定了MOWSEEVENTF_ABSOLOTE值,则dX和dy含有标准化的绝对坐标,其值在0到65535之间。事件程序将此坐标映射到显示表面。坐标(0,0)映射到显示表面的左上角,(6553,65535)映射到右下角。

如果没指定MOWSEEVENTF_ABSOLOTE,dX和dy表示相对于上次鼠标事件产生的位置(即上次报告的位置)的移动。正值表示鼠标向右(或下)移动;负值表示鼠标向左(或上)移动。

鼠标的相对移动服从鼠标速度和加速度等级的设置,一个最终用户用鼠标控制面板应用程序来设置这些值,应用程序用函数SystemParameterslnfo来取得和设置这些值。

在应用加速时系统对指定相对鼠标移动提供了两个测试。如果指定的沿X轴y轴的距离比第一个鼠标阈值大,并且鼠标的加速等级非零,则操作系统将距离加倍。如果指定的沿X轴或y轴的距离比第二个鼠标阈值大,并且鼠标的加速等级为2,则操作系统将从第一个阈测试得来的距离加倍。这样就允许操作系统将指定鼠标沿X轴或y轴的相对位移加到4倍。

一旦应用了加速,系统用期望的鼠标速度换算合成的值。鼠标速度的范围是从1(最慢)到20(最快),并代表基于鼠标移动的距离指示符移动的数量。缺省值是10,表示对鼠标的移动设有附加的修改。

函数mouse_event需要用的应用程序用来合成鼠标事件。也被应用程序用来取得鼠标位置和鼠标按键状态之外的鼠标信息。例如,如果输入板制造商想将基于画笔的信息传给自己的应用程序,可以写一个直接与输入板硬件通信的动态键接库(DLL),获得附加的信息,并保存到一个队列中。DLL然后调用mouse_event,用标准按键和x/y位置数据,并在参数dwExtralnfo设置排列的附加信息的指针或索引。当应用程序需要附加信息时,调用DLL(连同存贮在dwEXtralnfo中的指针或索引),则DLL返回附加信息。
Windows CE:Windows CE不支持参数 dwFlags取MOOSE EVENTF WHEEL常数。
速查: Windows NT: 3.1及以上版本; Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
ReleaseCapture
函数功能:该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗口接收所有的鼠标输入(无论光标的位置在哪里),除非点击鼠标键时,光标热点在另一个线程的窗口中。
函数原型:BOOL ReleaseCapture(VOlD)
参数:无。
返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetlastError函数。
备注:应用程序在调用函数SetCaPture之后调用此函数。
Windows 95:调用ReleaseCapture会引起失去鼠标捕获的窗日接收一个WM_CAPTURECHANGED消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:User32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
SetCapture
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
函数原型:HWND SetCapture(HWND hwnd);
参数:
hWnd:当前线程里要捕获鼠标的窗口句柄。
返回值:返回值是上次捕获鼠标的窗口句柄。如果不存在那样的句柄,返回值是NULL。

备注:只有前台窗口才能捕获鼠标。如果一个后台窗口想捕获鼠标,则该窗口仅为其光标热点在该窗口可见部份的鼠标事件接收消息。另外,即使前台窗口已捕获了鼠标,用户也可点击该窗口,将其调入前台。当一个窗日不再需要所有的鼠标输入时,创建该窗口的线程应当调用函数ReleaseCapture来释放鼠标。此函数不能被用来捕获另一进程的鼠标输入。
Windows 95:调用SetCaptune会引起失去鼠标捕获的窗口接收一个WM_CAPTURECHANGED消息。
速查:头文件:Winuser.h:输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
SetDoubleCIckTime
函数功能:该函数为鼠标设置双击时间。
函数原型:BOOL SetDoubleCIckTime(UINT ulnterval);
参数:
ulnterval:指定在双击中第一次和第二次点击之间的毫秒数。如果此参数设置为零则系统使用缺省的双击时间,即500毫秒。
返回值:如果函数调用成功,返回非零值。如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:函数SetDoubleClickTime为系统中所有的窗口修改双击时间。
速查:Windows NT 3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SwapMouseButton
函数功能:该函数反转或恢复鼠标左右键的含义
函数原型:BOOL SwapMouseButton(BOOL fSwap);
参数:

fSwap:指定鼠标键的含义是否被反转或恢复。如果此参数为TRUE,则左键产生右键消息而右键产生左键消息,如果此参数为FALSE,则恢复鼠标键的最初含义。
返回值:如果在函数调用之前鼠标键的含义已被反转,则返回非零值。如果鼠标键的含义没反转,返回值是零。

备注:鼠标键交换是为给那些用左手操作鼠标的人提供方便。此函数通常只能由控制板调用。尽管一个应用程序能够自由地调用此函数,但鼠标是一种共享资源,其键的含义反转会影响所有应用程序。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
TrackMouseEvent
函数功能:当在指定时间内鼠标指针离开或盘旋在一个窗口上时,此函数寄送消息。
函数原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
参数:
lpEventTrack;指向结构TRACKMOUSEEVENT的指针。
返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
此函数能寄送如下消息:

WM_MOUSEHOVER:在上次调用TrackMouseEvent指定的时间里,鼠标盘旋在窗口的客户区。当此消息产生时,盘旋跟踪停止。如果需要进一步的鼠标盘旋跟踪,应用程序应当再次调用TrackMouseEvent。

WM_MOUSELEAVE:鼠标离开上次调用TrackMouseEvent时指定的窗口客户区。当此消息产生时,所有由TrackMouseEvent要求的跟踪都被取消。当鼠标再次进入窗口,并且要求进一步的鼠标盘旋跟踪时,应用程序必须调用TrackMouseEvent。
备注:当鼠标指针在指定时间内停留在指定矩形内,就被认为是处于盘旋状态。调用函数
SystemParameterslnfo并使用SPI_GETMOUSEAOVERWIDTH,SPI_GETMOUSEHOVERAEIGHT和
SFI_GETMOOSEAOVERTIME值来取得矩形的大小和时间。
速查:Windows NT 4.0及以上版本;Windows 98及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = =

将光标设置为“小手”形状
::SetCursor(LoadCursor(NULL,MAKEINTRESOURCE(32649)));//IDC_HAND

转载于:https://www.cnblogs.com/yxbsmx/articles/1444952.html

鼠标/光标相关api相关推荐

  1. JS获取鼠标光标位置并在光标位置添加内容

    目标需求 获取鼠标光标位置,然后点击按钮或其他事件,在鼠标光标的位置插入需要的文字等 准备工具 contenteditable:contenteditable属性指定元素内容是否可编辑. window ...

  2. Windows消息机制以及相关API

    消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了.例如, ...

  3. 基于语音识别技术的声控鼠标光标程序设计

    摘要: 实现了一种基于语音识别技术的声控鼠标光标应用程序, 可以用语音控制鼠标光标移动到屏幕的任意位置, 能用来帮助伤残人士只用声音而不用鼠标和键盘就能操作电脑.分析了语音控制鼠标光标使用过程中的延时 ...

  4. Mac电脑如何调整鼠标光标大小?

    我们在使用Mac电脑的过程中,有一些小伙伴会不满足鼠标光标的大小,觉得鼠标光标太小而不能快速的被查看到.在这种情况下,我们就可以根据自己的需要,在系统中对鼠标光标的大小进行调整.那我们该如何调整呢?接 ...

  5. 服务器系统开机黑屏只有个鼠标,Win7系统开机却显示黑屏并只有鼠标光标该怎么办...

    用win7系统的用户有很多,所以关于win7系统遇到的问题可谓是层出不穷,完全就能一本win7问题百科了.最近就有用户表示他的win7系统又有新情况,开机还很正常,但快要进入系统桌面的时候就黑屏了,并 ...

  6. win10没有鼠标怎样用计算机,Win10电脑中鼠标光标消失怎么解决

    鼠标是我们使用电脑的时候必不可少的设备,然而有不少用户升级到win10系统的时候,却遇到鼠标光标消失的现象,移动鼠标或者触控板都没有任何反应,该如何解决呢,本教程就给大家带来Win10电脑中鼠标光标消 ...

  7. c语言中黑色的鼠标变宽,大师解答win7系统鼠标光标变成黑色方块了的设置方案....

    相信大多数朋友在使用电脑的过程中,会出现win7系统鼠标光标变成黑色方块了的状况,当遇到win7系统鼠标光标变成黑色方块了这种情况,我们应该如何解决呢?其实大部分的朋友都还不知道win7系统鼠标光标变 ...

  8. android 4.4 自定义广播,Android 4.4.2 系统 自定义 鼠标 光标 替换 接口实现

    一.需求背景 新项目开发,需预置"天翼云电脑"app,云电脑app界面里其实就是盒子端接入的鼠标和键盘外设,来操作云端的windows系统桌面: 云电脑客户端使用的android系 ...

  9. 如何使用CSS和JavaScript制作自定义鼠标光标

    新钛云服已累计为您分享707篇技术干货 您是否曾经访问过一个网站并被其惊人的功能所震撼?其中之一可能是一个很酷的鼠标光标,它不同于您习惯的常规箭头或指针光标. 这确实可以改善用户体验,最近我一直想知道 ...

最新文章

  1. 【C++】unordered_map 使用方法
  2. 汇编:源文件asm, exe可执行文件
  3. Css的filter常用濾波器屬性及語句大全
  4. python 深度 视差 计算_OpenCV-Python教程:49.立体图像的深度图
  5. 探索流程的奥秘之三, 如何梳理业务流程
  6. 配置登入是显示服务器信息
  7. 跳打开hdu 1208 (DP)
  8. 认识Python基础环境搭建
  9. python idle连接失败_不能通过IDLE从Explorer运行Python [2013] - IDLE的子进程没有连接...
  10. OSI参考模型(2)
  11. mysql拼接两字段查询
  12. 工具-WPT(Windows Performances Tool Kit) References
  13. docker安装informix
  14. 计算机室和电子备课室管理制度,电子备课室管理制度
  15. 机器人教室外墙_智慧教室解决方案-机器人创客教室布局设计
  16. HIVE SQL DDL语句实例
  17. 关于等价鞅、反等价鞅、剀利公式、赌徒输光定理(非常有启发意义)
  18. 使用Axios请求出现Provisional headers are shown
  19. 安装opencv时报错:Could not build wheels for opencv-python which use PEP 517 and cannot be installed direc
  20. const和extern用法

热门文章

  1. typora 低版本免费 .md 下载地址
  2. python制作翻译小软件_python 制作一个翻译软件
  3. uva 796 - Critical Links
  4. 负载和安全方面知识点小总结[朋友分享] 集思广益
  5. brightcove视频流下载
  6. 华为mate8电池虚电校正_mate8怎么电池校正?
  7. 基因表达分析-01基础概念
  8. 极大极小树的剪枝算法1 alpha-beta剪枝
  9. 杭电hduoj 2041 超级楼梯
  10. 泰克-吉时利-2200-远程操作