知识大全 Visual Basic的座标系统

Posted 单位

篇首语:为寻求真理的努力所付出的代价,总是比不担风险地占有它要高昂得多。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Visual Basic的座标系统相关的知识,希望对你有一定的参考价值。

Visual Basic的座标系统  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这里我们来看一下ScaleLeft/Top/Height/Width ScaleX ScaleY TextHeight TextWidth的一些特性与关连

  所谓的ScaleLeft ScaleTop ScaleTop ScaleWidth指的是Window中的Client Area即可以画图 放元件的区域 像Title区就不在Client Area的范围 如果我们设定ScaleMode成不为 的数值 如设定ScaleMode = (VBPixels)那麽就代表这区域的度量是以Pixels为单位 而ScaleTop =ScaleLeft = 即原点在左上角

  VB提供了一个很好用的座标系统转换 即ScaleMode ScaleLeft ScaleTop ScaleTopScaleWidth 我个人不喜欢VB内定的ScaleMode = VbTwips 我爱 ScaleMode=VBPixels原因是Window系统的度量单位是使用Pixels而不是Twips

  如果我们想在一个画面上画上座标 那麽如何才能不管Window的大小 而只管我们所关注的座标呢?假设我们想做一个座标 原点在Form的左下角( )而右上角座标是( ) 那我们只要对Form如此设

  ScaleTop =

  ScaleWidth =

  ScaleLeft =

  ScaleHeight =

  那就成了 这时候 如果我们去查一下Form的MouseDown的X Y值 会发现它的值已变成落在 之间了 (此时的ScaleMode = 自动变Vbuser)更有趣的是用来计算字串高 宽的TextHeight/TextWidth也变成以座标 的方式来

  表现了

  例如说

   CurrentX =

   CurrentY =

  Form Print HaHa

  这时会见到于Form左下方会出现HaHa 它的位置便是于座标( )之处 所以了 如果Form变大 Form Print HaHa 所显示之位置也会自动更动不像其他的ScaleMode(如vbPixel) 会在固定的绝对单位处显示 HaHa 然而 有时候我们会想要以绝对单位来做一些事 例如 我们希望在左边算来第三个Pixels处来显示东西 的确 数学好的人可以自己转换 而像我数学不好的人 可以用ScaleX/ScaleY来做 像方才的例子 左边算来第三点(Pixels)相对应于新的座标的宽度便是Form ScaleX( vbPixels vbUser)

  再来一个有趣的问题 如果有人见过一篇文章 用API来任意角度旋转字型 那篇文章中字型旋转之后印在Form上 如果我们转 度 而且于( )处印字 会发现它是从( )处往萤幕上方写出字 如果我们想在座标( )处当作字串的结束之地 那该如何呢 我会计算出该字串的长度(例如 长度 ) 而后在( )处印字 那困难点变成如何得知该字串长度 第一个反应是 TextWidth 不过别忘了 TextWidth它随着ScaleMode的更动而变 宽度x 者 如果垂直Print 而便假设其高度也是x 是不对的(如 ScaleTop = ScaleHeight = ScaleLeft = ScaleWidth

  = 而宽度= 的字串 垂直印的高度应是不会是 若X Y轴单位不同时也不一定是 (如果字大小不变的话)

  那使用Pixels来做二者的转换 Pixels一个点便是一个点 所以X Y轴的单位是相同的 当然 使用Twips也可以 只是如果中间有用上API 人家大多以Pixels为单位

  With Form

  OldScaleLeft = ScaleLeft

  OldScaleTop = ScaleTop

  OldScaleWidth = ScaleWidth

  OldScaleHeight = ScaleHeight

  OldScaleMode = ScaleMode

   ScaleMode = vbPixels

  txtLen = TextWidth(mystring) myString是待旋转的字串

  if OldScaleMode <> vbUser then

   ScaleMode = oldScaleMode

  else

   ScaleLeft = OldScaleLeft

   ScaleTop = OldScaleTop

   ScaleWidth = OldScaleWidth

   ScaleHeight = OldScaleHeight

  End If

  txtHeight = ScaleY(txtLen vbPixels vbUser)

  End With

cha138/Article/program/net/201311/13290

相关参考

知识大全 Visual C#或Visual Basic创建Web应用程序(上)

VisualC#或VisualBasic创建Web应用程序(上)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Visual C#或Visual Basic创建Web应用程序(下)

VisualC#或VisualBasic创建Web应用程序(下)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Visual Basic.Net基本语句

VisualBasic.Net基本语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一Try…

知识大全 Visual Basic.Net实现TCP协议

VisualBasic.Net实现TCP协议  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TCP协

知识大全 实战Visual Basic.Net对话框

实战VisualBasic.Net对话框  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对话框和

知识大全 Visual Basic.NET中组件的叠加使用

VisualBasic.NET中组件的叠加使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  状

知识大全 使用Visual Basic.NET重载事件处理程序

使用VisualBasic.NET重载事件处理程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Visual Basic .Net打造个性化菜单

VisualBasic.Net打造个性化菜单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  菜单

知识大全 Visual Basic和C#中的LINQ聚合

VisualBasic和C#中的LINQ聚合  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ag

知识大全 如何在Visual Basic中使用导入API

如何在VisualBasic中使用导入API  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在V