会的非常简单,送分,如何得到Form上按钮的屏幕坐标?

thermometer 2001-11-14 12:40:04
在Form 上有一个可视控件,比如按钮,如何做才能得到该按钮的left,top的屏幕坐标,即以像素为单位,对应屏幕左上角(0,0)的位置?
另外要指定Form的宽高以像素为单位,如何做?

本人是VB初学者,以前一直用Delphi ,现在感觉Vb也不错,希望知道答案的VB高手指点一下。
...全文
136 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
thermometer 2001-11-14
  • 打赏
  • 举报
回复
55555
thermometer 2001-11-14
  • 打赏
  • 举报
回复
谢谢大家

为什么在管理里面不能给分?
WWolf 2001-11-14
  • 打赏
  • 举报
回复
to :basey(阿Q) 
caption和FORM边框会根据FORM不同的类型,大小不定
除非你用
select case Me.BorderStyle
case 1

end select
加以区分,再将其值进行计算
Amoon 2001-11-14
  • 打赏
  • 举报
回复
to basey(阿Q):你不记得Caption的高度可以在显示器的属性页里调整的吗?:)
basey 2001-11-14
  • 打赏
  • 举报
回复
caption和FORM边框的宽度是固定的,是吧,加上来就可以了,是多少?
WWolf 2001-11-14
  • 打赏
  • 举报
回复
 Jneu(沧海桑田) 说的没有考虑到caption和FORM边框
阿木说的对,用ClienttoScreen,在DELPHI中不是也一样用这个函数的吗!
gwolf 2001-11-14
  • 打赏
  • 举报
回复
ggzzgz
Amoon 2001-11-14
  • 打赏
  • 举报
回复
1、将Form的ScaleMode设为3
2、
用API函数ClientToScreen

type POINTAPI
x as long
y as long
end type

dim ptCmd as POINTAPI
with ptCmd
.x=commandbutton.left
.y=commandbutton.top
end with

ClientToScreen commandbutton.hwnd,ptCmd
msgbox cstr(ptcmd.x)
msgbox cstr(ptcmd.y)

baoxiang 2001-11-14
  • 打赏
  • 举报
回复
upup
Jneu 2001-11-14
  • 打赏
  • 举报
回复
u~p
Jneu 2001-11-14
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MsgBox Str((Form1.Top + Command1.Top) / Screen.TwipsPerPixelY)
MsgBox Str((Form1.Left + Command1.Left) / Screen.TwipsPerPixelX)
End Sub

7,763

社区成员

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

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