• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
教你认识VB的座标系统
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
教你认识VB的座标系统
软件发布 教你认识VB的座标系统
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> VB & VB.NET教程 >> 教你认识VB的座标系统

教你认识VB的座标系统

添加时间: 2006-2-16 5:43:31  作者: VB教程  阅读次数:142   来源: http://www.d9soft.com

            这里我们来看一下ScaleLeft/Top/Height/Width ScaleX ScaleY TextHeight TextWidth
的一些特性与关连。
所谓的ScaleLeft ScaleTop ScaleTop ScaleWidth指的是Window中的Client Area即可以
画图、放元件的区域,像Title区就不在Client Area的范围。如果我们设定ScaleMode
成不为0的数值,如设定ScaleMode = 3 (VBPixels)那麽就代表这区域的度量是以Pixels
为单位,而ScaleTop =ScaleLeft = 0,即原点在左上角。
VB提供了一个很好用的座标系统转换,即ScaleMode, ScaleLeft ScaleTop ScaleTop
ScaleWidth。我个人不喜欢VB内定的ScaleMode = VbTwips,我爱 ScaleMode=VBPixels
原因是Window系统的度量单位是使用Pixels而不是Twips。
如果我们想在一个画面上画上座标,那麽如何才能不管Window的大小,而只管我们所
关注的座标呢?假设我们想做一个座标,原点在Form的左下角(0,0)而右上角座标是
(100,100), 那我们只要对Form如此设
ScaleTop = 100
ScaleWidth = 100
ScaleLeft = 0
ScaleHeight = -100,那就成了,这时候,如果我们去查一下Form的MouseDown的
X, Y值,会发现它的值已变成落在0-100之间了。(此时的ScaleMode = 自动变Vbuser)
更有趣的是用来计算字串高、宽的TextHeight/TextWidth也变成以座标0-100的方式来
表现了。例如说,
.CurrentX = 10
.CurrentY = 10
Form1.Print "HaHa",这时会见到於Form左下方会出现HaHa,它的位置便是於座标
(10,10)之处,所以了,如果Form变大,Form1.Print "HaHa"所显示之位置也会自动更动
不像其他的ScaleMode(如vbPixel),会在固定的绝对单位处显示"HaHa"。然而,有时候
我们会想要以绝对单位来做一些事,例如:我们希望在左边算来第三个Pixels处来显示
东西,的确,数学好的人可以自己转换,而像我数学不好的人,可以用ScaleX/ScaleY
来做,像方才的例子,左边算来第三点(Pixels)相对应於新的座标的宽度便是

Form1.ScaleX(3,vbPixels, vbUser)。


再来一个有趣的问题,如果有人见过我的一篇文章,用API来任意角度旋转字型,那
篇文章中字型旋转之後印在Form上,如果我们转90度,而且於(50,50)处印字,会发
现它是从(50,50)处往萤幕上方写出字,如果我们想在座标(50,50)处当作字串的结束
之地,那该如何呢,我会计算出该字串的长度(例如:长度20),而後在(50,70)处印字
,那困难点变成如何得知该字串长度,第一个反应是.TextWidth,不过别忘了,
TextWidth它随着ScaleMode的更动而变,宽度x1者,如果垂直Print,而便假设其高
度也是x1是不对的(如:ScaleTop = 0, ScaleHeight = 10, ScaleLeft = 0, ScaleWidth
=20,而宽度=10的字串,垂直印的高度应是不会是10,若X Y轴单位不同时也不一定是5
(如果字大小不变的话)。
那我会使用Pixels来做二者的转换,Pixels一个点便是一个点,所以X,Y轴的单位是相同
的,当然,使用Twips也可以,只是如果中间有用上API,人家大多以Pixels为单位。
With Form1
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
如此txtHeight便是字串於旋转後的高度啦!

 

上下文章:

 

上一篇文章: VB网络篇游戏编程技巧指南 下一篇文章: Visual Basic6.0实用编程技巧3例

相关文章:

  • 解瘳Vista系统OpenGL驱动问题整理
  • Vista系统的官方优化指南文档下载
  • 六类综合布线系统施工经验小结
  • 内外网物理隔离下的集群邮件系统路由方案(三)
  • 内外网物理隔离下的集群邮件系统路由方案(四)

相关软件:

  • 雨过天晴电脑保护系统 V1.0.060612
  • YlmF XP 系统 DIY Y1.6[1205] 绿色版
  • Windows系统服务终结者 V3.3 绿色版
  • 海啸系统间谍 1.42.080815 免杀版
  • 胜新通用条形码设计打印系统 6.09
  • 中国车牌号查询系统(ChinaCar) V1.1

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库
  • 用DAO或ADO正确访问Access 2000

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有