今天是:
设百科问答网为首页|收藏百科问答网|网站地图
百科问答网 - 帮您解决问题,分享成功经验
首页(百科问答网)  » 电脑/数码/通讯/互联网 » 编程/开发  » 正文内容:

用VB6.0编程捕获鼠标移动得距离。


用Microsoft Visual Basic v6.0编程,捕获鼠标移动得距离。
比如:鼠标移动到一个位置,我把鼠标得坐标清零,然后我移动鼠标1米(超出了屏幕),那么我能通过计算而知道鼠标是移动了1米吗?


答案或建议:


在窗体中放上两个Command,一个Label和一个Timer。Command1的Caption为“开始测
定”,Command2的Caption为“退出
写入以下代码:
Private Declare Function GetCursorPos Lib "user32" (lpPoint As pointapi) As
Long

Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long,
ByVal nIndex As Long) As Long

Private Type pointapi '定义GetCursorPos中的参数

x As Long

y As Long

End Type

'声名变量:

Dim Z As pointapi

Dim L, S, TOTAL

Public A, B, K, H

'
Private Sub Command1_Click()

GetCursorPos Z '得到初始鼠标位置

A = Z.x: B = Z.y

Timer1.Enabled = True

End Sub

Private Sub Command2_Click()

End

End Sub


Private Sub Form_Load()

H = GetDeviceCaps&(hdc, 8) '得到屏幕水平分辨率(单位为象素)

K = Screen.Width '得到屏幕宽度(单位为twip)

Timer1.Interval = 10 '数值约小,测得的结果约精确

Timer1.Enabled = False

S = 0

End Sub


Private Sub Timer1_Timer()

GetCursorPos Z

L = Sqr((Z.x - A) ^ 2 + (Z.y - B) ^ 2) '每次循环得到鼠标移动距离(单位为象
素),方法有些象微分

S = S + L '得到总的路程(单位为象素)

TOTAL = Int(S * K / H * 2.54 / 1400 / 100 * 100) / 100 '将S单位由象素划为
米,取到小数点后两位。1缇=2.540/1400/100米。

Label1.Caption = TOTAL

A = Z.x: B = Z.y '用新位置的坐标替换原来的坐标

End Sub

文章转载请保留:http://www.baikewenda.com/tech/dev/6/9/a2085623.htm
精彩推荐

敬请注意:百科问答网内容来源于网络或民间经验收集,仅供参考。其中有关健康疾病方面的内容请务必咨询专业医生或及时到医院治疗。
关于我们 - 广告服务 - 联系我们
百科问答网 Copyright ©2005 - 2011 www.baikewenda.com,All Rights Reserved
辽ICP备10007180号