搞不懂这个VB里的X,Y坐标

dbbdggdbbdgg 2000-04-07 10:15:00
搞不懂这个VB里的X,Y坐标
我想在在控件上单击一下,就在指针处弹出窗口.我在MouseUp中加入
frmCommentDetail.Left = X
frmCommentDetail.Top = Y
frmCommentDetail.Show
弹的不是地方,差老了.
改成:
frmCommentDetail.Left = X/Screen.TwipsPerPixelX
frmCommentDetail.Top = Y/Screen.TwipsPerPixelX
frmCommentDetail.Show
也不对,怎么回事?
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin 2000-04-07
  • 打赏
  • 举报
回复
坐标有屏幕坐标和客户区坐标之分,MouseUp的X, Y是客户区坐标,需用ClientToScreen API转换成屏幕坐标(在转换之前,先将X,Y转换成像素坐标,如Y/Screen.TwipsPerPixelX),转换后,再转换成Twips值。
guzhigang 2000-04-07
  • 打赏
  • 举报
回复
1,保证窗口是主窗口,不然,相对于父窗口坐标切换
2,用WIN API SETCAPTURE
dbbdggdbbdgg 2000-04-07
  • 打赏
  • 举报
回复
补充一点,如果我想在任何地方(不只是自己程序窗口)点一下也在该位置弹出,怎么实现?
Chen_Lin 2000-04-07
  • 打赏
  • 举报
回复
Type POINTAPI
x As Long
y As Long
End Type

Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
这个函数返回当前鼠标的坐标值(屏幕坐标),注意是像素值。
Tyro 2000-04-07
  • 打赏
  • 举报
回复
frmCommentDetail.Left = X + Me.Left
frmCommentDetail.Top = Y + Me.Top
frmCommentDetail.Show

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧