Screenwidth
Screenheight
这是获取屏幕的像素
mewidth
meheight
这是获取程序本身的像素
(meleft+image1left)/15
因为VB中默认的计量单位与像素是15比1的关系 所以转化为像素就要除以15
看到你的问题补充就不知道你想要写成什么样子的了。
给你两段代码把。
一、获取鼠标在屏幕上的坐标
'坐标显示在Text1,Text2
'建一个Timer1,Text1,Text2
'代码如下。
'============
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Dim p As POINTAPI
Private Sub Form_Load()
Timer1Interval = 10
End Sub
Private Sub Timer1_Timer()
GetCursorPos p
Text1Text = px
Text2Text = py
End Sub
二、获取鼠标在窗体内的坐标
'坐标显示在标题上
'运行此程序需要再窗体添加控件Timer
Option Explicit
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Sub Form_Load()
Timer1Interval = 10 '设置获取鼠标坐标间隔
End Sub
Private Sub Timer1_Timer()
Dim P As POINTAPI
GetCursorPos P '获取鼠标在屏幕中的位置
ScreenToClient Mehwnd, P '转换为本窗体的坐标
Dim t As Boolean
t = Px >= 0 And Py >= 0 And Px < MeWidth / ScreenTwipsPerPixelX And Py <= MeHeight / ScreenTwipsPerPixelY
If t Then MeCaption = "x=" & Px & "y=" & Py '按像素显示坐标
'If t Then MeCaption = "x=" & Px ScreenTwipsPerPixelX & "y=" & Py ScreenTwipsPerPixelY '按缇显示坐标
End Sub
就是访问子窗体内的控件吧,如果你的窗体真的是子窗体,你智能感知forms下看有没有它,否则只是个控件,用controls集合去访问到它,它里面的控件也是如此访问和 *** 作,就是mecontrols(xxx)controls(yyy)visible=true之类的方法。
奉劝你最好使用主窗体为mdi。
以上就是关于vb判断控件在屏幕上的坐标全部的内容,包括:vb判断控件在屏幕上的坐标、vb 获取鼠标在窗口内的屏幕坐标、VB 获取控件在窗体上的位置(控件在容器中)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)