一个很有难度的问题,要涉及到VB和JAVA两个坐标应用,请高手来看!(100分) vb中的坐标和JAVA中的坐标和大小是否相同,例如VB中有一个窗口form1,里面有一个text1,那么我用这个两个控件共用的四个属性(Top,Left,Width,Height)的值分别放在JAVA中,Java里我把面板布局设置为空,用setBounds(x,y,w,h)来放控件,但是控件的大小和坐标全都对不上,大家帮我解决一下啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JAVA中不知道,VB中默认的坐标是缇,是个绝对单位,和屏幕大小和分辨率无关。缇是打印机的一磅的 1/20(1,440 缇等于一英寸;567 缇等于一厘米)。用X/TwipsPerPixelXY/TwipsPerPixelY可以得到以像素为单位的坐标 两种语言中的坐标是不同的。vb坐标系统默认使用单位twip,java默认使用单位Pixel另外vb中top=0是标题栏下面开始,java中top=0是标题栏上面开始vb中可以通过ScalModal改变缺省坐标系 X/Screen.TwipsPerPixelXY/Screen.TwipsPerPixelY 因为VB中默认的度量单位是一个叫“缇”的东东用下面这条语句把VB的默认度量单位改成象素再取它的值出来放到JAVA里应该就可以了Me.ScaleMode = vbPixels这里的Me是窗体本身,ScaleMode属性用来改变对象的度量单位 大家说的话都好复杂啊,有没有实际例子说明一下,就如我题目中的form1和text1,要进行怎么样的转换才可以把它的坐标和大小应用到JAVA上!(最好有一点代码) 各位,我已经试过viena(维也纳nn-实心木头人)的语句,不行啊,总是有点怪怪的, blueswind8306() 我也试过了,都是不行, blueswind8306() 那个不能改变控件大小的值,只能改变坐标的值,如果和viena(维也纳nn-实心木头人)的语句一齐用,都是不行! Debug.Print Text1.Left; Tab; Text1.Top; Tab; Text1.Width; Tab; Text1.Height; Tab;Me.ScaleMode = vbPixels Debug.Print Text1.Left; Tab; Text1.Top; Tab; Text1.Width; Tab; Text1.Height; Tab;第一行Debug后输出的值是以缇为单位的,也是VB的默认值。第三行Debug后输出的值是以象素为单位的,把这四个值用在JAVA里就可以了 ok,成功了,多谢大家,原来刚才我将top和left写错顺序了,我现在想改回VB的默认单位,应该将Me.ScaleMode = ? 才可以把单位设置为vb默认的缇呢? Me.ScaleMode=VbTwips是缇建议你看看MSDN里面写的很清楚的 vb二分法 调用问题 求Symbol Factory Activex的补丁 请问哪里有英文版VB6.0下载啊 Dim StmPic As ADODB.Stream要引用什么 请教网络入侵高手!!!!! 请高手指教 怎么样把查询出的结果放到数组中? 关于窗体不可见的问题 求在VB6.0中双击DATAGRID就能够修改编辑数据并更新到数据库里的示例代码?急!在线等! 通过popup menu打开模态窗体,然后再想在新窗体中popup menu 就不行了,不知道是什么原因。 [求助]怎么声明一个全局的动态数组? 如何在VB中实现多个系统热键?(100分求解)
VB中默认的坐标是缇,是个绝对单位,和屏幕大小和分辨率无关。
缇是打印机的一磅的 1/20(1,440 缇等于一英寸;567 缇等于一厘米)。
用
X/TwipsPerPixelX
Y/TwipsPerPixelY
可以得到以像素为单位的坐标
vb坐标系统默认使用单位twip,java默认使用单位Pixel
另外vb中top=0是标题栏下面开始,java中top=0是标题栏上面开始
vb中可以通过ScalModal改变缺省坐标系
Y/Screen.TwipsPerPixelY
Debug.Print Text1.Left; Tab; Text1.Top; Tab; Text1.Width; Tab; Text1.Height; Tab;第一行Debug后输出的值是以缇为单位的,也是VB的默认值。
第三行Debug后输出的值是以象素为单位的,把这四个值用在JAVA里就可以了