Option ExplicitPrivate Sub Form_Load()
Me.ScaleMode = vbPixels
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = Me.Left
Text2.Text = Me.Top
End Sub
*******************************************************************************
以上代码;当鼠标在窗体上移动时文本框里得到窗体在屏幕上的坐标位置。
但 得到的好象是 Twip 我想得到的是 Pixel 请问应该如何做呢?
切望老师们帮助;先谢谢!
Me.ScaleMode = vbPixels
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = Me.Left
Text2.Text = Me.Top
End Sub
*******************************************************************************
以上代码;当鼠标在窗体上移动时文本框里得到窗体在屏幕上的坐标位置。
但 得到的好象是 Twip 我想得到的是 Pixel 请问应该如何做呢?
切望老师们帮助;先谢谢!
yxPixel = yTwip \ Screen.TwipsPerPixelY
就用viena的方法,twip是vb自己的单位,不同的分辨率有不同的Screen.TwipsPerPixel值,Screen.TwipsPerPixelX,Screen.TwipsPerPixelY是得到当前分辨率下1pixel=多少twip的。
也请您先在VB里运行一下再贴上来好吗!
Text1.Text = Me.Left / Screen.TwipsPerPixelX
Text2.Text = Me.Top / Screen.TwipsPerPixelY
End Sub
Text1.Text = Me.Left \ Screen.TwipsPerPixelX
Text2.Text = Me.Top \ Screen.TwipsPerPixelY
End Sub为什么要放在鼠标移动事件里呢?
鼠标移动会改变窗体的位置吗?
像素必然是整数,应该用整数除法\
给你的是参考,而不是可运行代码,
明显的XY坐标,难道看不懂吗?来这里是学习的而不是要代码,学会了,可以举一反三;
否则永远都不会,永远要去问别人,累不累啊?
'Me.ScaleMode = vbPixels
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
' Text1.Text = Me.Left
' Text2.Text = Me.Top
Text3.Text = Screen.TwipsPerPixelX
Text4.Text = Screen.TwipsPerPixelY
Text1.Text = Me.Left / Screen.TwipsPerPixelX
Text2.Text = Me.Top / Screen.TwipsPerPixelY
End Sub