vb中如何使窗体随光标移动(就是窗体出现在光标处,像即时菜单一样)我有两个窗体。

我是想让第二个窗体随光标动的。我用了getcurspos,然后再用form1.left/top,但是窗体总是出现在左上角,而不光标处,另外窗体的移动范围也很小。求助。... 我是想让第二个窗体随光标动的。我用了getcurspos,然后再用form1.left/top,但是窗体总是出现在左上角,而不光标处,另外窗体的移动范围也很小。求助。 展开
 我来答
Jerry20110434
2012-12-08 · 超过13用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:40.9万
展开全部
用width和height获取长、宽的中点,然后在上述的基础上加上去就行了。
追问
不行啊,怎么获得中点啊,可以说清楚一点吗?是form1.left=cur.x + (Form1.Width / 2)吗?这样只是使窗体的位置往右移了一点,另外光标移动一大段,窗体才移动一点点。我上面只是知道了长度,中点怎么算。另外getcursorpos得到的不就是屏幕的坐标吗?我感觉它是按一个什么比例缩小了,是不是数据进制的问题?
crazy0qwer
2012-12-08 · TA获得超过3299个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1300万
展开全部
你那个问题估计是你没注意他们的单位,getcurpos得到的是像素,而窗体的位置的单位是 缇
1像素=15缇。所以要乘以十五。

Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "USER32" (lpPoint As POINTAPI) As Long
Private Sub Command1_Click()
Form2.Show
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
Form2.Hide
End Sub
Private Sub Timer1_Timer()
Dim p As POINTAPI
GetCursorPos p '取鼠标所在位置坐标
Form2.Left = p.X * 15
Form2.Top = p.Y * 15
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式