如果得到一个控件在窗体中的绝对位置?

myhot-河马吃草 2005-01-12 04:37:55
位置指:上边距和左边距
控件command在picture 容器中..现在如何得到command相对窗体的绝对位置.和它在屏幕的位置

left=command.left+picture.left
有何通用方法.求出command位置.而不必知道.command具体在什么容器中

...全文
216 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xayzmb 2005-01-13
  • 打赏
  • 举报
回复
怎么得到控件所在的容器不用教吧???
laviewpbt 2005-01-13
  • 打赏
  • 举报
回复
//而不必知道.command具体在什么容器中
xayzmb 2005-01-13
  • 打赏
  • 举报
回复
控件在容器中的位置加上容器在窗体上的位置就是控件在窗体中的位置
其它依此类推
熊孩子开学喽 2005-01-13
  • 打赏
  • 举报
回复
有必要这么麻烦嘛???
控件在窗体中的位置,加上窗口在屏幕上的位置,就是控件的绝对位置啦。
myhot-河马吃草 2005-01-13
  • 打赏
  • 举报
回复
还是教一下吧.. :)
sworddx 2005-01-12
  • 打赏
  • 举报
回复
楼上抢先了=)
laviewpbt 2005-01-12
  • 打赏
  • 举报
回复
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
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 Command2_Click()
Dim ret As RECT
Dim ip As POINTAPI
GetWindowRect Command1.hwnd, ret '得到command1的位置
ip.x = ret.Left
ip.y = ret.Top
ScreenToClient Me.hwnd, ip '转换,单位为象素
Debug.Print ip.x
Debug.Print ip.y
End Sub

7,763

社区成员

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

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