搞不懂这个VB里的X,Y坐标
搞不懂这个VB里的X,Y坐标
我想在在控件上单击一下,就在指针处弹出窗口.我在MouseUp中加入
frmCommentDetail.Left = X
frmCommentDetail.Top = Y
frmCommentDetail.Show
弹的不是地方,差老了.
改成:
frmCommentDetail.Left = X/Screen.TwipsPerPixelX
frmCommentDetail.Top = Y/Screen.TwipsPerPixelX
frmCommentDetail.Show
也不对,怎么回事?
问题点数:80、回复次数:5Top
1 楼dbbdggdbbdgg()回复于 2000-04-07 10:17:00 得分 0
补充一点,如果我想在任何地方(不只是自己程序窗口)点一下也在该位置弹出,怎么实现?Top
2 楼guzhigang(初学者)回复于 2000-04-07 12:04:00 得分 25
1,保证窗口是主窗口,不然,相对于父窗口坐标切换
2,用WIN API SETCAPTURETop
3 楼Lin(林)回复于 2000-04-07 12:49:00 得分 25
坐标有屏幕坐标和客户区坐标之分,MouseUp的X, Y是客户区坐标,需用ClientToScreen API转换成屏幕坐标(在转换之前,先将X,Y转换成像素坐标,如Y/Screen.TwipsPerPixelX),转换后,再转换成Twips值。Top
4 楼Tyro(新手)回复于 2000-04-07 13:17:00 得分 5
frmCommentDetail.Left = X + Me.Left
frmCommentDetail.Top = Y + Me.Top
frmCommentDetail.Show
Top
5 楼Chen_Lin()回复于 2000-04-07 15:49:00 得分 25
Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
这个函数返回当前鼠标的坐标值(屏幕坐标),注意是像素值。
Top




