在我编写的程序中,我需要鼠标绝对位置在表单的左上角。我正在使用此代码:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "x: " & X & " - y: " & Y
End Sub
Run Code Online (Sandbox Code Playgroud)
当我使用此代码时,左上角的坐标为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
Run Code Online (Sandbox Code Playgroud)
这样可以给出正确的坐标,但是为什么我需要将其乘以15?我不确定该代码是否在其他系统上兼容。
查看MouseMove的文档。返回的X和Y值对应于“对象的ScaleHeight,ScaleWidth,ScaleLeft和ScaleTop属性”。
因此,查看ScaleHeight,ScaleWidth和ScaleLeft,ScaleTop的文档,很明显,您可以指定如何确定X和Y坐标。您不仅限于Twips或Pixel,而且可以使用您指定的任何编号系统。
这是ScaleHeight,ScaleWidth页面的引用:
例如,语句ScaleHeight = 100更改了表单实际内部高度的度量单位。高度将改为100个用户定义的单位,而不是n个当前单位的高度(缇,像素,...)。因此,50个单位的距离是物体高度/宽度的一半,而101个单位的距离将与物体相距1个单位。
为了确保您的结果符合您的期望,您可以准确地告诉表单包含多少个用户定义的单位。
| 归档时间: |
|
| 查看次数: |
6954 次 |
| 最近记录: |