Visual C++6.0 API函数操作技巧集

本文介绍了Windows系统中实现鼠标和光标操作的API函数,包括隐藏和显示光标、交换鼠标左右键、获取和设置鼠标双击时间及锁定鼠标等功能,并提供了在Visual C++ 6.0中的具体实现代码。
  1. 我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0++中利用所介绍的API函数实现对鼠标和光标的操作的代码。
  2.   一、隐藏和显示光标
  3.   函数: int ShowCursor ( BOOL bShow ); 
  4.   参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标;该函数的返回值为整型,为鼠标隐藏或显示的指数器;返回值大于等于0时显示光标,否则隐藏鼠标;如果安装了鼠标初值为0。
  5.   实例:
  6.   在基于对话框的应用程序中放置两个Button,名称分别为HideCursor和ShowCursor;再放置一个CStatic控件,名称为Label1,用于显示光标计数器。
  7.   源程序为: 
  8. // 使光标计数器的值减一,如果小于零,隐藏光标
  9. void CMyTestDlg::OnHideCursor()
  10. {
  11. int i;
  12. i=ShowCursor(FALSE);
  13. Cstring string;
  14. string.Format(_T("%d" ),i);
  15. Label1.SetWindowText(&string);
  16. }
  17. // 使光标计数器的值加一,如果大于等于零,显示光标
  18. void CMyTestDlg::OnShowCursor()
  19. {
  20. int j;
  21. j=ShowCursor(TRUE);
  22. Cstring string;
  23. string.Format(_T("%d" ),j);
  24. Label1.SetWindowText(&string);
  25.   运行程序,连续单击ShowCursor按钮,你会见到计数器从1(光标显示时初值为0)开始不断加1;再连续单击HideCursor按钮,又会见到计数器不断减1,当计数器为-1时开始隐藏光标。
  26.   二、交换鼠标左右键和恢复
  27.   函数: 
  28. BOOL SwapMouseButton ( BOOL fSwap ); 
  29.   参数 fSwap,为布尔型,TRUE表示交换鼠标左右键,FALSE表示恢复系统默认左右手习惯;返回值亦为布尔型,交换后,返回值TRUE,恢复正常值为FALSE。
  30.   实例:
  31.   在应用程序中放置两个Button,名称分别为ReverseMouse和RestoreMouse。
  32.   源程序为: 
  33. //交换鼠标左右键
  34. void CMyTestDlg::OnReverseMouse()
  35. {
  36. BOOL T;
  37. T=SwapMouseButton(True);
  38. If(T)
  39. MessageBox("鼠标左右键交换成功!");
  40. }
  41. // 恢复鼠标左右键交换
  42. void CMyTestDlg::OnRestoreMouse()
  43. {
  44. BOOL T;
  45. T=SwapMouseButton(FALSE);
  46. If(!T)
  47. MessageBox("鼠标左右键恢复为默认状态!");
  48.   运行程序,左键单击ReverseMouse按钮,此时实现鼠标左右键功能切换;再右键单击RestoreMouse按钮,此时实现鼠标左右键功能恢复。
  49. 三、得到鼠标双击时间
  50.   1、函数: 
  51. UINT GetDoubleClickTime(VOID); 
  52.   该函数无参数;它的返回值为毫秒,为双击鼠标双击有效的时间间隔。
  53.   实例:
  54.   在窗口中放置一个Button,名称为GetDoubleClickTime;再放置一个名为Label1的CStatic控件,用于显示双击时间。
  55.   源程序为: 
  56. //得到并显示鼠标的双击的时间
  57. void CMyTestDlg::OnGetDoubleClickTime()
  58. {
  59. int DTime;
  60. Cstring string;
  61. DTime:=GetDoubleClickTime();
  62. string.Format(_T("%d" ),Dtime);
  63. Label1.SetWindowText(&string);
  64. }
  65.   运行程序,单击GetDoubleClickTime,在Label1中显示双击的时间,为毫秒级。
  66.   四、设置鼠标双击时间
  67.   函数: 
  68. BOOL SetDoubleClickTime ( UINT uInterval ); 
  69.    参数uInterval,表示鼠标双击时间,为毫秒级,系统默认时间为500;
  70.    返回值为布尔值。
  71.   实例:
  72.   在窗口中放置一个Button,名称为SetDoubleClickTime。
  73.   源程序为: 
  74. //设置鼠标的双击的时间
  75. void CmyTestDlg::OnSetDoubleClickTime()
  76. {
  77. Bool T;
  78. T=SetDoubleClickTime(500);
  79. If(T)
  80. MessageBox("成功的设置了鼠标双击时间!");
  81.   运行程序,单击BtnSetDoubleClickTime,鼠标双击时间已改变。
  82.   五、将鼠标锁定在一定范围
  83.   函数:
  84. BOOL ClipCursor ( CONST RECT *lpRect ); 
  85.   参数*lpRect,指向鼠标活动矩形区域的指针;返回值为布尔型,表示锁定成功与否。
  86.   实例:
  87.   在窗口中放置两个Button,名称为LockMouse和UnLockMouse。
  88.   源程序为: 
  89. //将鼠标锁定在固定区域
  90. void CmyTestDlg::OnLockMouse()
  91. {
  92. RECT Rect;
  93. BOOL bLock;
  94. Rect.left=10;//设置锁定区域大小;
  95. Rect.top=10;
  96. Rect.right=200;
  97. Rect.bottom=200;
  98. bLock:=ClipCursor(&Rect); // 限制鼠标移动区域
  99. if (block)
  100. MessageBox("鼠标固定在指定区域!");
  101.   将鼠标锁定解锁,其实质是将鼠标锁定在整个屏幕区
  102. void CmyTestDlg::OnLockMouse()
  103. {
  104. RECT Rect;
  105. BOOL bLock;
  106. Rect.left=0;//设置锁定区域大小;
  107. Rect.top=0;
  108. Rect.right=600;
  109. Rect.bottom=800;
  110. Block=ClipCursor(&Rect);
  111. if (block)
  112. MessageBox("鼠标固定在屏幕区域!");
  113.   运行程序,单击LockMouse,此时鼠标锁定在固定区域中;再单击UnLockMouse键鼠标锁定解锁。当然还可以采用别的方法将鼠标来解锁,如将鼠标锁定在某一个窗口来对鼠标解锁。
  114.   总之,API函数的功能强大,我们可以在多种快速开发工具中使用它,以增强我们程序的功能。以上程序在Windows2000、Visual C++ 6.0中调试通过。
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值