在VB6表格中获取鼠标位置
在我正在编写的程序中,我需要鼠标绝对位置在窗体的左上角。 我正在使用以下代码:在VB6表格中获取鼠标位置,vb6,mousemove,Vb6,Mousemove,在我正在编写的程序中,我需要鼠标绝对位置在窗体的左上角。 我正在使用以下代码: Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Debug.Print "x: " & X & " - y: " & Y End Sub 使用此代码时,左上角的坐标为0,0。但问题是当我在表单中移动时,值太大了15倍 这就是我为什么使用: Priva
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "x: " & X & " - y: " & Y
End Sub
使用此代码时,左上角的坐标为0,0。但问题是当我在表单中移动时,值太大了15倍
这就是我为什么使用:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "x: " & X / 15 & " - y: " & Y / 15
End Sub
这给出了正确的坐标,但为什么我需要将其除以15?
我不确定此代码是否与其他系统兼容。单位为运行时转换系数:screen.twipperpixelx和Y。
您还可以将表单ScaleMode更改为使用像素。查看文档了解更多信息。返回的X和Y值对应于对象的ScaleHeight、ScaleWidth、ScaleLeft和ScaleTop属性 因此,查看和的文档可以清楚地看出,您可以指定如何确定X和Y坐标。您不仅限于Twips或像素,还可以使用您指定的任何编号系统 这里引用了ScaleHeight,ScaleWidth页面的一段话: 例如,语句ScaleHeight=100更改了 测量窗体的实际内部高度。而不是 高度为n个当前单位twips,像素,…,高度为 100个用户定义的单位。因此,50个单位的距离是距离的一半 对象的高度/宽度以及101个单位的距离将被禁用 该对象由1个单位组成
在这方面,为了确保结果符合预期,您可以准确地告诉表单它包含多少用户定义的单位。对于我来说,坐标是从左上角算起的像素数。例如,当它给我15000时,我知道它不对,因为它应该是1000。谢谢,我通过将scalemode更改为像素使其工作。+1如果结果与您的预期不同,请查看文档,以查看您的预期是否有误。