Twip和Pixel
pixel(像素)
可在屏幕或打印机上显示的最小元素。像素与屏幕无关。
各种显示类型的设计
Microsoft Windows 是与设备无关的-基于窗口的应用程序可以在许多不同显示分辨率与颜色浓度的计算机中运行。同样,用 Visual Basic 编写的应用程序也会在不同类型的显示器上运行,在设计应用程序时需要考虑到这一点。
设计与分辨率无关的窗体
缺省情况下,当改变屏幕分辨率时,Microsoft Visual Basic 不会改变窗体与控件的尺寸。这就意味着在分辨率
为 1024 X 768 的屏幕上设计的窗体,在分辨率为 640 X 480 的屏幕中运行时会伸出屏幕的边界之外。如果想创建不管使用什么样的屏幕
分辨率都能有相同比例的窗体和控件,必须在最低的分辨率下设计窗体,或者将改变窗体的代码添加到程序中去。
避免尺寸问题的最简单的方法是在 640 X 480 的分辨率下设计窗体。如果更喜欢在高一些的分辨率下工作,仍需要考虑窗体在低一些的分辨率下将如何
显示。实现这一点的方法是用“Form Layout”窗口预览窗体的大小和位置。您也可以使用“Resolution Guides”观察在低分辨率时
屏幕的哪些部分是可见的。要切换到“Resolution Guides”,可以在“Form Layout”窗口单击鼠标右键,从弹出菜单上选择
“Resolution Guides”菜单项。
在运行时,Visual Basic 根据设计时的位置来放置窗体。如果设计时在 1024 X 768 的分辨率上运行,并把窗体放到屏幕的右下角,则 当它在比较低的分辨率下运行时该窗体可能看不见。为了避免这种情况的发生,在设计时可从“Form Layout”窗口的弹出菜单选择 “Startup Position”菜单项来设置窗体的启动位置。同样,您也可以在运行时用下面的 Form Load 事件中的代码来设置窗体的位 置:
Private Sub Form_Load()
Me.Move 0, 0
End Sub
若是设置窗体的 Left 与 Top 的属性都为 0 也能有同样的效果,但 Move 方法只要一步就能完成。
Visual Basic 使用与设备无关的度量单位,缇,是用来计算尺寸与位置。Screen 对象的两个属
性 TwipsPerPixelX 与 TwipsPerPixelY 可以用来确定运行时的显示尺寸。应用这些属性,可以编写代码来调整窗体以及控件的
尺寸与位置。
Private Sub SetControls()
Dim X As Integer
Dim Y As Integer
X = Screen.TwipsPerPixelX
Y = Screen.TwipsPerPixelY
Select Case X, Y
Case 15, 15
' 重新改变控件尺寸及移动控件。
txtName.Height = 200
txtName.Width = 500
txtName.Move 200, 200
' 增加为其它分辨率编写的代码。
…
End Sub
也需要知道在设计时 Visual Basic 自身窗口的位置。如果在高分辨率下把“工程”窗口放置到屏幕的右边,那么会发现在低分辨率下打开工程时,它不再是可访问的了。
设计不同浓度的颜色
在设计应用程序时,也需要考虑运行应用程序计算机可能的颜色显示能力。有些计算机可以显示 256 色或更多的颜色,而另一些只能显示 16 种颜色。如
果使用 256 色的调色板来设计窗体,那么在 16 色上显示时,抖动(模仿无效颜色的一种方法)会使窗体上的一些元素消失。
为了避免这种情况,最好把应用程序使用的颜色局限于 Windows 标准的 16 颜色。这些颜色由 Visual Basic 的颜色常数来表示
(如 vbBlack、vbBlue 和 vbCyan 等等)。如果在应用程序中需要用 16 种以上的颜色,那么对于文本、按钮以及其他界面元素仍然
应当坚持用标准颜色。
像素(Pixels):监视器或打印机分辨率的最小单位
右键单击桌面,选择属性,选择“设置”选卡,单击高级按钮。
里面出现DPI设置。一般为“正常尺寸(96 DPI)”。
DPI的意思就是 DPI (Dots per Inch)。因此我们可以得到如下换算公式
1 Pixel = 1440 TPI / 96 DPI = 15 Twips
1 Twip = 96 DPI / 1440 TPI = 0.0666667 Pixels
2、
TwipsPerPixelX、TwipsPerPixelY 属性
返回水平 (TwipsPerPixelX) 或垂直 (TwipsPerPixelY) 度量的对象的每一像素中的缇数。
Windows API 例程一般需要以像素为度量单位。使用这些属性能够快速转换度量单位而不用改变对象的 ScaleMode 属性设置值
Twip和Pixel的更多相关文章
- Raphael.js image 在ie8以下的兼容性问题
Raphael.js 在ie7,ie8浏览器内绘制图形採用的vml,在绘制image的时候会解析成 <?xml:namespace prefix = "rvml" ns = ...
- Atitit 图像处理Depixelizing Pixel Art像素风格画的矢量化
Atitit 图像处理Depixelizing Pixel Art像素风格画的矢量化 在去年的时候,偶然看到hqx算法. 一个高质量的插值放大算法. 与双线性插值等插值算法相比,这个算法放大后对人眼 ...
- 片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但
片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但片元着色器是一个更合适的名字, 因为此时的片元并不是一个真正意义上的像素.
- 悲惨记忆。。QImage之 pixel() && setPixel()参数不要给反了。。。
QImage repairImg(width, height, QImage::Format_Mono); ; row < height; row++) { // uchar* ucRow = ...
- Pixel VS Point, FrameBuffer VS RenderBuffer
// How iOS app MVC works View, Window, AppDelegate ViewController, RootViewController // On Pixel VS ...
- 像素图的实时光照 Lighting on Pixel Art
去年有这样一个工具,We got one toolkit last year. 他有什么功能呢?What is its function? 让你画出各个方向的照明图 That you can draw ...
- voxel 与 pixel
中文名称:体素,即顾名思义是体积的像素.用来在三维空间中表示一个显示基本点的单位.类似于二维平面下的pixel(像素). voxel是三维空间中定义一个点的图象信息的单位.在平面中定义一个点要两个坐标 ...
- pixel art之 hqx 算法
在去年的时候,偶然看到hqx算法. 一个高质量的插值放大算法. 与双线性插值等插值算法相比,这个算法放大后对人眼保护相对比较好. 没有双线性插值看起来模糊,固然,也抽空把算法简单优化了一下. 官网及代 ...
- sdut 2411:Pixel density(第三届山东省省赛原题,字符串处理)
Pixel density Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Pixels per inch (PPI) or pi ...
随机推荐
- 从零开始写一个发送h264的rtsp服务器(下)
转自:http://blog.csdn.net/jychen105/article/details/47012099 一.H264是如何通过rtsp发送的 简单来说,H264就是通过打包到rtp协议的 ...
- 点击cell动态修改高度动画
点击cell动态修改高度动画 效果 源码 https://github.com/YouXianMing/Animations // // TapCellAnimationController.m // ...
- 《Linux就是这个范儿》
<Linux就是这个范儿> 基本信息 作者: 赵鑫磊 (加)Jie Zhang(张洁) 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115359360 上架时间:2 ...
- 第一章 AOP
关于AOP,通常我们会使用AspectJ注解来做,共有6中切面 前置:@Before 后置:@After 返回值:@AfterReturing 异常:@AfterThrowing 环绕:@Around ...
- [转]你如何面对—LNMP高并发时502
From : http://www.topthink.com/topic/5683.html 之前php-fpm配置: 单个php-fpm实例,使用socket方式,内存8G 静态方式,启动php-f ...
- [转]关于Infobright的数据导入
FROM : http://www.mysqlsky.com/201109/infobright-data-load-error 题记 对于DW系统而言,庞大数据的迁移成本很高:所以导入和导出的速率及 ...
- libc中的标准函数 localtime和localtime_r 的用法
http://baike.baidu.com/view/1080853.htm 随便一查,就可以查到基本用法,但是... http://blog.csdn.net/maocl1983/article/ ...
- 【google chrome 一键打开 谷歌跳转的页面+JS Replace】谷歌无法打开网页的时候,提取网页中url的部分
经常在谷歌搜索,遇到网页无法打开,然后就停留在比如:http://www.google.com.hk/search?newwindow=1&safe=strict&site=& ...
- NVelocity语法常用指令
对变量的引用:$ [ ! ][ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ][ } ]. 在NVelocity中,对变量的引用都是以$开头加上变量名称.当使用 ...
- cesium原理篇(三)--地形(1)【转】
转自:http://www.cnblogs.com/fuckgiser/p/5824743.html 简述 前面我们从宏观上分析了Cesium的整体调度以及网格方面的内容,通过前两篇,读者应该可以比较 ...