Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Visual C++ > Visual C++6.0 API函数操作技巧集之鼠标光标篇
【标  题】:Visual C++6.0 API函数操作技巧集之鼠标光标篇
【关键字】:API,C,操作,技巧,Visual,函数,is,C++,鼠标,Visual,API
【来  源】:网络

Visual C++6.0 API函数操作技巧集之鼠标光标篇

Your Ad Here    我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了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中调试通过。
如何做到像《金山词霸》一样只运行一个实例:【上一篇】
编写一个STL 中的CString类:【下一篇】
【相关文章】
  • 有关注册表API函数
  • VC常用数据类型使用转换详解
  • 应该使用哪个框架?用ATL和MFC来创建ActiveX控件
  • VC++技术内幕(第四版)读书笔记之Windows的编程模式
  • VC++技术内幕(第四版)读书笔记之MFC应用程序框架
  • Windows API 程序的组织结构
  • C++程序设计中的多态技术研究(上)
  • MFC如何封装WINDOWS应用程序的流程
  • Visual C++编程中的文件操作
  • CButtonST类公共接口函数的介绍
  • 【随机文章】
  • 标题: 新手SuSE Linux 10.1上手贴(硬盘安装,驱动安装,添加源,xgl配置……)
  • jexcelapi java对excel的操作
  • Groovy全攻略--安装篇
  • 进程退出前删除自身EXE
  • asp性能测试第二部分(转)(四)
  • 最近在研究Swept Volume的碰撞检测。
  • 了解Excel公式的错误值
  • WAP的影响
  • IIS 6 通配符应用映射和HttpHandler配置
  • 自己写溢出的基础,溢出原理(2)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.