Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497434
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:54:17

下载本文示例代码
  我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0 中利用所介绍的API函数实现对鼠标和光标的操作的代码。  一、隐藏和显示光标  函数: int ShowCursor ( BOOL bShow );   参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标;该函数的返回值为整型,为鼠标隐藏或显示的指数器;返回值大于等于0时显示光标,否则隐藏鼠标;如果安装了鼠标初值为0。  实例:  在基于对话框的应用程序中放置两个Button,名称分别为HideCursor和ShowCursor;再放置一个CStatic控件,名称为Label1,用于显示光标计数器。  源程序为: // 使光标计数器的值减一,如果小于零,隐藏光标void CMyTestDlg::OnHideCursor(){int i;i=ShowCursor(FALSE);Cstring string;string.Format(_T("%d" ),i);Label1.SetWindowText(&string);}// 使光标计数器的值加一,如果大于等于零,显示光标void CMyTestDlg::OnShowCursor(){int j;j=ShowCursor(TRUE);Cstring string;string.Format(_T("%d" ),j);Label1.SetWindowText(&string);}   运行程序,连续单击ShowCursor按钮,你会见到计数器从1(光标显示时初值为0)开始不断加1;再连续单击HideCursor按钮,又会见到计数器不断减1,当计数器为-1时开始隐藏光标。  二、交换鼠标左右键和恢复  函数: BOOL SwapMouseButton ( BOOL fSwap );   参数 fSwap,为布尔型,TRUE表示交换鼠标左右键,FALSE表示恢复系统默认左右手习惯;返回值亦为布尔型,交换后,返回值TRUE,恢复正常值为FALSE。  实例:  在应用程序中放置两个Button,名称分别为ReverseMouse和RestoreMouse。  源程序为: //交换鼠标左右键void CMyTestDlg::OnReverseMouse(){BOOL T;T=SwapMouseButton(True);If(T)MessageBox("鼠标左右键交换成功!");}// 恢复鼠标左右键交换void CMyTestDlg::OnRestoreMouse(){BOOL T;T=SwapMouseButton(FALSE);If(!T)MessageBox("鼠标左右键恢复为默认状态!");}   运行程序,左键单击ReverseMouse按钮,此时实现鼠标左右键功能切换;再右键单击RestoreMouse按钮,此时实现鼠标左右键功能恢复。  三、得到鼠标双击时间  1、函数: UINT GetDoubleClickTime(VOID);   该函数无参数;它的返回值为毫秒,为双击鼠标双击有效的时间间隔。  实例:  在窗口中放置一个Button,名称为GetDoubleClickTime;再放置一个名为Label1的CStatic控件,用于显示双击时间。  源程序为: //得到并显示鼠标的双击的时间void CMyTestDlg::OnGetDoubleClickTime(){int DTime;Cstring string;DTime:=GetDoubleClickTime();string.Format(_T("%d" ),Dtime);Label1.SetWindowText(&string);}   运行程序,单击GetDoubleClickTime,在Label1中显示双击的时间,为毫秒级。  四、设置鼠标双击时间  函数: BOOL SetDoubleClickTime ( UINT uInterval );    参数uInterval,表示鼠标双击时间,为毫秒级,系统默认时间为500;   返回值为布尔值。  实例:  在窗口中放置一个Button,名称为SetDoubleClickTime。  源程序为: //设置鼠标的双击的时间void CmyTestDlg::OnSetDoubleClickTime(){Bool T;T=SetDoubleClickTime(500);If(T)MessageBox("成功的设置了鼠标双击时间!");}   运行程序,单击BtnSetDoubleClickTime,鼠标双击时间已改变。  五、将鼠标锁定在一定范围  函数: BOOL ClipCursor ( CONST RECT *lpRect );   参数*lpRect,指向鼠标活动矩形区域的指针;返回值为布尔型,表示锁定成功与否。  实例:  在窗口中放置两个Button,名称为LockMouse和UnLockMouse。  源程序为: //将鼠标锁定在固定区域void CmyTestDlg::OnLockMouse(){RECT Rect;BOOL bLock;Rect.left=10;//设置锁定区域大小;Rect.top=10;Rect.right=200;Rect.bottom=200;bLock:=ClipCursor(&Rect); // 限制鼠标移动区域if (block)MessageBox("鼠标固定在指定区域!");}   将鼠标锁定解锁,其实质是将鼠标锁定在整个屏幕区 void CmyTestDlg::OnLockMouse(){RECT Rect;BOOL bLock;Rect.left=0;//设置锁定区域大小;Rect.top=0;Rect.right=600;Rect.bottom=800;Block=ClipCursor(&Rect);if (block)MessageBox("鼠标固定在屏幕区域!");}   运行程序,单击LockMouse,此时鼠标锁定在固定区域中;再单击UnLockMouse键鼠标锁定解锁。当然还可以采用别的方法将鼠标来解锁,如将鼠标锁定在某一个窗口来对鼠标解锁。  总之,API函数的功能强大,我们可以在多种快速开发工具中使用它,以增强我们程序的功能。以上程序在Windows2000、Visual C 6.0中调试通过。   我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0 中利用所介绍的API函数实现对鼠标和光标的操作的代码。  一、隐藏和显示光标  函数: int ShowCursor ( BOOL bShow );   参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标;该函数的返回值为整型,为鼠标隐藏或显示的指数器;返回值大于等于0时显示光标,否则隐藏鼠标;如果安装了鼠标初值为0。  实例:  在基于对话框的应用程序中放置两个Button,名称分别为HideCursor和ShowCursor;再放置一个CStatic控件,名称为Label1,用于显示光标计数器。  源程序为: // 使光标计数器的值减一,如果小于零,隐藏光标void CMyTestDlg::OnHideCursor(){int i;i=ShowCursor(FALSE);Cstring string;string.Format(_T("%d" ),i);Label1.SetWindowText(&string);}// 使光标计数器的值加一,如果大于等于零,显示光标void CMyTestDlg::OnShowCursor(){int j;j=ShowCursor(TRUE);Cstring string;string.Format(_T("%d" ),j);Label1.SetWindowText(&string);}   运行程序,连续单击ShowCursor按钮,你会见到计数器从1(光标显示时初值为0)开始不断加1;再连续单击HideCursor按钮,又会见到计数器不断减1,当计数器为-1时开始隐藏光标。  二、交换鼠标左右键和恢复  函数: BOOL SwapMouseButton ( BOOL fSwap );   参数 fSwap,为布尔型,TRUE表示交换鼠标左右键,FALSE表示恢复系统默认左右手习惯;返回值亦为布尔型,交换后,返回值TRUE,恢复正常值为FALSE。  实例:  在应用程序中放置两个Button,名称分别为ReverseMouse和RestoreMouse。  源程序为: //交换鼠标左右键void CMyTestDlg::OnReverseMouse(){BOOL T;T=SwapMouseButton(True);If(T)MessageBox("鼠标左右键交换成功!");}// 恢复鼠标左右键交换void CMyTestDlg::OnRestoreMouse(){BOOL T;T=SwapMouseButton(FALSE);If(!T)MessageBox("鼠标左右键恢复为默认状态!");}   运行程序,左键单击ReverseMouse按钮,此时实现鼠标左右键功能切换;再右键单击RestoreMouse按钮,此时实现鼠标左右键功能恢复。  三、得到鼠标双击时间  1、函数: UINT GetDoubleClickTime(VOID);   该函数无参数;它的返回值为毫秒,为双击鼠标双击有效的时间间隔。  实例:  在窗口中放置一个Button,名称为GetDoubleClickTime;再放置一个名为Label1的CStatic控件,用于显示双击时间。  源程序为: //得到并显示鼠标的双击的时间void CMyTestDlg::OnGetDoubleClickTime(){int DTime;Cstring string;DTime:=GetDoubleClickTime();string.Format(_T("%d" ),Dtime);Label1.SetWindowText(&string);}   运行程序,单击GetDoubleClickTime,在Label1中显示双击的时间,为毫秒级。  四、设置鼠标双击时间  函数: BOOL SetDoubleClickTime ( UINT uInterval );    参数uInterval,表示鼠标双击时间,为毫秒级,系统默认时间为500;   返回值为布尔值。  实例:  在窗口中放置一个Button,名称为SetDoubleClickTime。  源程序为: //设置鼠标的双击的时间void CmyTestDlg::OnSetDoubleClickTime(){Bool T;T=SetDoubleClickTime(500);If(T)MessageBox("成功的设置了鼠标双击时间!");}   运行程序,单击BtnSetDoubleClickTime,鼠标双击时间已改变。  五、将鼠标锁定在一定范围  函数: BOOL ClipCursor ( CONST RECT *lpRect );   参数*lpRect,指向鼠标活动矩形区域的指针;返回值为布尔型,表示锁定成功与否。  实例:  在窗口中放置两个Button,名称为LockMouse和UnLockMouse。  源程序为: //将鼠标锁定在固定区域void CmyTestDlg::OnLockMouse(){RECT Rect;BOOL bLock;Rect.left=10;//设置锁定区域大小;Rect.top=10;Rect.right=200;Rect.bottom=200;bLock:=ClipCursor(&Rect); // 限制鼠标移动区域if (block)MessageBox("鼠标固定在指定区域!");}   将鼠标锁定解锁,其实质是将鼠标锁定在整个屏幕区 void CmyTestDlg::OnLockMouse(){RECT Rect;BOOL bLock;Rect.left=0;//设置锁定区域大小;Rect.top=0;Rect.right=600;Rect.bottom=800;Block=ClipCursor(&Rect);if (block)MessageBox("鼠标固定在屏幕区域!");}   运行程序,单击LockMouse,此时鼠标锁定在固定区域中;再单击UnLockMouse键鼠标锁定解锁。当然还可以采用别的方法将鼠标来解锁,如将鼠标锁定在某一个窗口来对鼠标解锁。  总之,API函数的功能强大,我们可以在多种快速开发工具中使用它,以增强我们程序的功能。以上程序在Windows2000、Visual C 6.0中调试通过。 下载本文示例代码


Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集Visual C 6.0 API函数操作技巧集
阅读(78) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~