加载中,请稍候..
您的位置: 首页 - 代写本科论文 - 怎样在Delphi 6中利用API函数对光标和鼠标操作研究

怎样在Delphi 6中利用API函数对光标和鼠标操作研究

编辑:zydaixie     时间:2009-5-29    20:51:21  来自:代写毕业论文

摘要:本文介绍了Windows系统中有关实现对鼠标和光标控制的API函数,然后通过在Delphi6.0中利用介绍的API函数实现对鼠标和光标的操作。

关键词:API Delphi 光标和鼠标操作
 
我们在编制多媒体软件和一些系统软件时,常常需要对光标和鼠标操作。本人结合应用实践,在Delphi6中利用WindowsAPI函数实现了一些对光标和鼠标的操作。现向大家介绍一下。
一、隐藏和显示光标
1、函数:
intShowCursor(BOOLbShow);
2、说明:
参数bshow,为布尔型,表示隐藏(False)或显示(True);
返回值为整型,为鼠标隐藏或显示的指数器;
返回值大于等于0时显示光标,否则隐藏鼠标;如果安装了鼠标初值为0。
3、实例:
在应用程序中放置两个Button,代写本科论文名称分别为BtnHideCursor和BtnShowCursor;再放置一个LabCount,用于显示光标计数器。
源程序为:
//使光标计数器的值减一,如果小于零,隐藏光标
procedureTForm1.BtnHideCursorClick(Sender:TObject);
vari:integer;
Begin
i:=ShowCursor(False);
LabCount.Caption:=inttostr(i);
end;
//使光标计数器的值加一,如果大于等于零,显示光标
procedureTForm1.BtnShowCursorClick(Sender:TObject);
varj:integer;
Begin
j:=ShowCursor(True);
LabCount.Caption:=inttostr(j);
end;
运行程序,连续单击BtnShowCursor,你会见到计数器从一(说明初值为零)开始不断加一;再连续单击BtnHideCursor又会见到计数器不断减一,当计数器为-1时开始隐藏光标。
 
二、交换鼠标左右键和恢复
1、函数:
BOOLSwapMouseButton(BOOLfSwap);
2、说明:
参数fSwap,为布尔型,表示交换(True)或恢复(False),系统默认左手习惯;
返回值亦为布尔型,交换后,返回值非0(False),恢复正常值为0(True)。
3、实例:
在应用程序中放置两个Button,名称分别为BtnReverseMouse和BtnRestoreMouse。
源程序为:
//交换鼠标左右键
procedureTForm1.BtnReverseMouseClick(Sender:TObject);
vart:boolean;
Begin
t:=SwapMouseButton(True);
ifnottthenshowmessage('False');
end;
 
//恢复鼠标左右键交换
procedureTForm1.BtnRestoreMouseClick(Sender:TObject);
vart:boolean;
Begin
t:=SwapMouseButton(False);
iftthenshowmessage('true');
end;
运行程序,左键单击BtnReverseMouse,此时实现鼠标左右键功能切换;再右键单击BtnRestoreMouse,此时实现鼠标左右键功能恢复。
 
三、得到鼠标双击时间
1、函数:
UINTGetDoubleClickTime(VOID);
2、说明:
该函数无参数;返回值为毫秒。
3、实例:
在窗口中放置一个Button,名称为BtnGetDoubleClickTime;再放置一个LabTime,用于显示双击时间。
源程序为:
//得到并显示鼠标的双击的时间
procedureTForm1.BtnGetDoubleClickTimeClick(Sender:TObject);
varDTime:integer;
begin
DTime:=GetDoubleClickTime;
LabTime.Caption:=inttostr(DTime);
end;
运行程序,单击BtnGetDoubleClickTime,在LabTime中显示双击的时间,为毫秒级。
 
四、设置鼠标双击时间
1、函数:
BOOLSetDoubleClickTime(UINTuInterval);
2、说明:
参数uInterval,表示鼠标双击时间,为毫秒级,系统默认时间为500;
返回值为毫秒。
3、实例:
在窗口中放置一个Button,名称为BtnSetDoubleClickTime。
源程序为:
//设置鼠标的双击的时间
procedureTForm1.BtnSetDoubleClickTimeClick(Sender:TObject);
vart:boolean;
begin
t:=SetDoubleClickTime(500);
iftthenshowmessage('Sucess!');
end;
运行程序,单击BtnSetDoubleClickTime,鼠标双击时间已改变。
 
五、将鼠标锁定在一定范围
1、函数:
BOOLClipCursor(CONSTRECT*lpRect);
2、说明:
参数*lpRect,指向鼠标活动矩形区域的指针;返回值为布尔型,表示锁定成功与否。
3、实例:
在窗口中放置两个Button,名称为BtnLockMouse和BtnUnLockMouse。
源程序为:
//将鼠标锁定在BtnUnLockMouse区域
procedureTForm1.BtnLockMouseClick(Sender:TObject);
var
rtBtnUnLockMouse:TRect;
lock:boolean;
begin
rtBtnUnLockMouse:=BtnUnLockMouse.BoundsRect;
MapWindowPoints(handle,0,rtBtnUnLockMouse,2);//座标换算
lock:=ClipCursor(@rtBtnUnLockMouse);//限制鼠标移动区域
iflockthenshowmessage('lock');
end;
//将鼠标锁定解锁,其实质是将鼠标锁定在整个屏幕区
procedureTForm1.BtnUnLockMouseClick(Sender:TObject);
var
rtScreen:TRect;
begin
rtScreen:=Rect(0,0,Screen.Width,Screen.Height);
ClipCursor(@rtScreen);
end;
运行程序,单击BtnLockMouse,此时鼠标锁定在BtnUnLockMouse中;再单击BtnUnLockMouse键鼠标锁定解锁。
 
总之,API函数的功能强大,我们可以在多种快速开发工具中使用它,以增强我们程序的功能。以上程序在Windowsme、Delphi6.0中调试通过。http://www.zydaixie.com代写毕业论文网
 
参考文献
1[美]MarcoCantuDelphi4从入门到精通北京:电子工业出版社,1999
2黄嘉辉,黄悦珊VisualBasic与WindowsAPI程序设计高手北京:清华大学出版社,2001

原创文章如转载请注明:转载自『代写毕业论文http://www.zydaixie.com/
将本文收藏到网摘: google书签  新浪ViVi   Poco网摘  365key天天网摘   yahoo收藏  windows live书签  添加到del.cio.us  加入收客收藏  分享到饭否  天极网摘  和讯网摘  百度收藏  QQ书签  有道阅读
分类:代写本科论文 | 评论:0 | 引用:0 | 浏览:183  | 引用本文
所有评论
  • * 名称
  • * 邮箱
  • 网站链接
  • 正文(*)(留言最长字数:1000)

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。