- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在VB程序中实现鼠标右键双击
西北工业大学(710072) 况正谦
在Microsoft Visual BASIC(VB)中,窗体(Form)和控件(Control)等对象的单击(Click)和双击(Double-Click)事件都是指鼠标左键而言的。鼠标右键的单击和双击事件在VB中没有对应的事件驱动过程去响应和处理。但是在实际应用中(特别是一些可视化的图形软件)可能对鼠标键的功能定义比较丰富,单靠鼠标左键的单击和双击难以满足复杂的需要。因此有必要开发和扩充VB应用程序对鼠标右键的响应能力。 VB定义的鼠标事件 VB定义的鼠标事件有五种:单击(Click)、双击(DblClick)、鼠标键按下(MouseDown)、鼠标键松开(MouseUp)和鼠标光标移动(MouseMove)。其中前两种事件单击和双击是专指鼠标左键而言,后三种则适用于所有鼠标键。后三种鼠标事件的事件驱动过程有如下的形式: Sub对象名-鼠标事件(Button As Integer,Shift As Integer, X As Single, Y As Single) 用户插入的事件响应和处理代码 End Sub 传递给事件过程的参数中,整型数Button的最低三位从右到左分别对应鼠标左、右、中三个键。事件发生时,哪个或哪些键处于被按下的状态,Button的对应位就为1,否则为0。程序中可以用VB的位运算AND来检测鼠标键的状态。整数Shift的最低三位从右到左分别对应事件发生时键盘的Shift、Ctrl、Alt键。事件发生时,Shift、Ctrl、Alt中的哪个或哪些键处于被按下的状态,参数Shift的对应位就为1,否则为0。单精度值X和Y存放的是事件发生时鼠标光标的X-Y坐标值。该值对于窗体对象而言是鼠标光标在窗体客户区中的坐标,对于控件对象则是鼠标光标在窗体客户区中相对于控件左上角的坐标。 鼠标右键事件的检测 实际上,鼠标的单击事件可以被分解为MouseDown和MouseUp两个事件,所以我们可以用MouseDown事件来取代单击事件。同样,鼠标双击事件也可以分解为两个非常紧凑的单击事件。根据这一思路,我们可以在MouseDown事件过程中判定鼠标右键的单击和双击事件,并作出相应的响应和处理。 1.右键单击的判断和处理 鼠标右键单击事件的判断很简单,只需在MouseDown事件过程中检测一个Button参数。如下所示: Sub对象名-MouseDown(Button As Integer,Shift As Integer, X As Single, Y AsSingle) If Button = 2 Then 鼠标右键按下 鼠标右键单击的响应和处理代码 End If End Sub 2.右键双击的判断和处理 Windows对鼠标双击的定义是:同一鼠标键的两次快速按动-放开。只要两次按键的时间间隔不超过某一阈值,Windows就作为双击对待,否则认为是两次单击。这一阈值称为DoubleClickSpeed,它是在Widnows启动时从初始化文件WIN.INI中读入的。这一阈值在WIN.INI文件[Windows]段的Dou-bleClickSpeed项中存放,以毫秒为单位。一般情况下DoubleClickSpeed值为452毫秒,但是也可以在WIN.INI中人为地改变这一设定。 为了判断鼠标右键的双击事件,我们需要在程序中读取WIN.INI中的DoubleClick-Speed值。以后每次鼠标右键按下时,在Mouse-Down事件过程中都要读当前的系统时间,并与上次按键的时间比较,看是否超过Dou-bleClickSpeed值:如果没超过,则转到双击事件的响应呼处理代码,否则作为单击事件处理。 这里涉及读WIN.INI的问题。虽然WIN.INI是格式固定的文本文件,但是用读文本文件的方法去查找DoubleClickSpeed还是很麻烦。Windows系统专门提供了一组函数用于访问Windows的初始化文件,这组函数同其它一些函数包含在Windows的三个系统动态链接库(DDL)中。在Windows的软件开发环境中,一般都提供了访问这些函数的能力,这是通过Windows的应用程序接口(API)实现的。Windows API函数库中包含了几百个功能强大的系统函数,VB程序可以通过调用API函数完成很多VB系统本身不提供的功能。 在VB中调用API函数之前,首先要用Declare语句对调用的函数、函数所在的动态链接库、函数的参数和返回类型进行必要的声明。声明格式为: Declare Function API函数名Lib动态链接库名(形式参数表) As 返回类型 为了读取WIN.INI文件中某一项的值,我们需要调用API函数GetProfileIn
您可能关注的文档
最近下载
- 兴边富民工程实施方案(3篇).docx
- 苏科版八年级数学上册压轴题攻略专题03解题技巧专题:判定三角形全等的基本思路压轴题三种模型全攻略(原卷版+解析).docx VIP
- 卡通手绘风班干部竞选自我介绍PPT模板(二零二五学期版).pptx VIP
- 带锯机安全生产操作规程.pptx
- 第3课 古代印度 课件(共34张PPT).pptx VIP
- 公共政策3政策的资料搜集与方法剖析.ppt VIP
- 专题04 解题技巧专题:判定三角形全等的基本思路压轴题三种模型全攻略(解析版).docx VIP
- 2025年健康管理师技能证书全国考试题库(含答案).pdf VIP
- 写景抒情散文阅读.doc VIP
- 中小学班级卫生值日表 模板.docx VIP
文档评论(0)