位置:51电子网 » 技术资料 » EDA/PLD

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

发布时间:2008/8/23 0:00:00 访问次数:734

  我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了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); // 限制鼠标移动区

  我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了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); // 限制鼠标移动区

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!