首页 > 应用 > EDA
[导读]我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0++中利用所介绍的API函数实现对鼠标和光标的操作的代码。一、

我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了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中调试通过。

欢迎转载,信息来自维库电子市场网(www.dzsc.com)



来源:ks990次

本文引用地址: http://www.21ic.com/app/eda/201806/769784.htm

换一批

延伸阅读

[单片机应用] PIC单片机的延时函数

PIC单片机的延时函数

  PIC单片机C语言中的延时函数(即延时一定值),有多种等效的编写,这里介绍一种最简延时函数。  函数中的K为给定的整形。......

关键字:单片机 函数 PIC

[单片机应用] keil MDK的信号函数

keil MDK的信号函数

keil的信号函数用于模拟和测试串行IO,模拟IO,端口通讯等重复发生的外部事件。信号函数以关键字signal开头。在函数中必须调用twatch用于延时,不然keil会陷入死循环。twatch函数的参数表示要延时的CPU执行周期,比如......

关键字:keil MDK 信号函数

[单片机应用] C51函数的递归调用

C51函数的递归调用

前几天在写C51程序时用到了递归,简单程序如下:voidWRITE_ADD(ucharaddr,ucharwbyte){START();//先发送起始信号WRITE_BYTE(0xa0);//设备地址+W命令if(!ERROR_Flag)/......

关键字:C51函数 递归调用

[单片机应用] ARM7 LPC2378 远程升级----IAP函数

ARM7 LPC2378 远程升级----IAP函数

对于在应用编程( IAP) 来说,应当通过寄存器 r0 中的字指针指向包含命令代码和参数的存储器(RAM)来调用 IAP 程序。 IAP 命令的结果返回到寄存器 r1 所指向的结果表( resulttable)。......

关键字:函数 IAP

[测试测量] 泰克全新智能型AFG31000系列,重新定义任意波函数发生器

泰克全新智能型AFG31000系列,重新定义任意波函数发生器

泰克科技公司日前宣布推出AFG31000系列,重新定义任意波函数发生器(AFG)。AFG31000采用全新设计,拥有多个业界第一,包括业界最大的触摸屏和全新智能的用户界面,这将使工程师和科研人员如虎添翼,因为他们需要生成越来越复杂的测试信号......

关键字:泰克 AFG31000 任意波函数发生器

[智能硬件] 张朝阳乌镇畅谈人工智能:大家都在同一起跑线

张朝阳乌镇畅谈人工智能:大家都在同一起跑线

“我们去年一年是打基础,技术实力上有比较大的提升,如果你们关注我们2018年的一些产品,比如搜狐新闻客户端等等方面的产品就会感受到变化。”搜狐公司董事局主席兼首席执行官张朝阳在乌镇接受多家媒体采访时说。......

关键字:搜狐 张朝阳 人工智能

我 要 评 论

网友评论

芯闻号

热门文章

技术子站

更多

项目外包

更多

推荐博客