CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

将twip(缇)换算成像素的方法(高手可能知道了,给新手看看)

楼主aliaoz()2003-02-01 06:39:10 在 VB / API 提问

我前一段写一个小程序需要窗口跟随鼠标进行移动.  
  首先使用计数器得到鼠标的位置(api函数:getcurosrpos).然后将x,y赋值给form.top和form.left.  
   
  写出来后发现,窗口并不能在鼠标所处的方位,虽然也能跟随鼠标进行移动.查了一下资料,发现窗口的位置是有twip来算得,如果想得到实际效果的话,就必须将twip换算成pixel,具体做法如下:  
   
  一缇为1440英寸,我使用api函数:GetDeviceCaps来得到每英寸内所包含的像素  
   
  scrx=getdevicecaps(dc,LOGPIXELSX)'dc为桌面窗口的dc,LOGPIXELSX为横向scry=getdevicecaps(dc,LOGPIXELSy)'同上  
   
  然后我们进行换算  
   
  Form.Top   =   Int(p.Y   *   (1440   /   scrx)   -   Form.Width   /   2)  
  Form.Left   =   Int(p.X   *   (1440   /   scry)   -   Form.Height   /   2)'p.x和p.y为鼠标方位  
   
  运行程序后就可以看到,窗口始终跟随鼠标并且中心在鼠标点上  
  问题点数:0、回复次数:5Top

1 楼aliaoz()回复于 2003-02-01 06:40:23 得分 0

发现错误,是一twip是1/1440英寸Top

2 楼Kivic(享受·生活)回复于 2003-02-01 09:19:35 得分 0

不一定,还有用户设置项对鼠标的换算Top

3 楼James0001(虾米—什么时候成大虾?)回复于 2003-02-01 11:28:10 得分 0

其实用窗体的   ScaleX   和   ScaleY   方法很方便的。Top

4 楼gang75(*^&^*)回复于 2003-02-04 11:38:21 得分 0

gzTop

5 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2003-02-04 11:41:33 得分 0

 
  ScaleX、ScaleY   方法  
               
   
  用以将   Form,PictureBox   或   Printer   的宽度或高度值从一种   ScaleMode   属性的度量单位转换到另一种。不支持命名参数。  
   
  语法  
   
  object.ScaleX   (width,   fromscale,   toscale)  
   
  object.ScaleY   (height,   fromscale,   toscale)  
   
  ScaleX   和   ScaleY   方法的语法包含如下部分:  
   
  部分   描述    
  object   可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略   object,则带有焦点的   Form   对象缺省为   object。    
  width   必需的。为   object   指定被转换的度量单位的数量。    
  height   必需的。为   object   指定被转换的度量单位的数量。      
  fromscale   可选的。一个常数或数值,按照下列设置中的描述,指定   object   的   width   或   height   从哪一种坐标系统转换。fromscale   可取的数值与   ScaleMode   属性的数值加上   HiMetric   的新数值相同。    
  toscale   可选的。一个常数或数值,按照下列“设置值”中的描述,指定   object   的   width   或   height   转换到哪一种坐标系统。toscale   可取的数值与   ScaleMode   属性的数值加上   HiMetric   的新数值相同。    
   
   
  设置值  
   
  用于   fromscale   和   toscale   设置值有:  
   
  常数   值   描述    
  vbUser   0   用户定义:指示   object   的宽度和高度设置为自定义值。    
  vbTwips   1   缇(每逻辑英寸   1440   缇;每逻辑厘米   567   缇)。    
  vbPoints   2   磅(每逻辑英寸   72   点)。    
  vbPixels   3   像素   (显示器或打印机分辨率的最小单位)。    
  vbCharacters   4   字符(水平   =   每单位   120   缇,垂直   =   每单位   240   缇)。    
  vbInches   5   英寸    
  vbMillimeters   6   毫米    
  vbCentimeters   7   厘米    
  vbHimetric   8   HiMetric。如果省略   fromscale,则   HiMetric   为缺省值。    
  vbContainerPosition   9   决定控件位置。    
  vbContainerSize   10   决定控件大小。    
   
   
  说明  
   
  ScaleX   和   ScaleY   方法按   fromscale   指定的度量单位取值(width   或   height),并将它转换为   toscale   指定的度量单位下相应的值。  
   
  也可以结合   PaintPicture   方法使用   ScaleX   和   ScaleY。  
  Top

相关问题

  • 请问像素与mm怎样换算?
  • Twip和Pixel怎么换算?
  • 厘米和像素之间如何换算?
  • 请问:一像素等于多少twip?
  • 请问:一像素等于多少twip?
  • 说说:缇(twip)和象素的换算关系
  • 哪位老大知道字体大小和显示所占像素的换算关系?
  • 请问vc中的描述控件大小的是什么单位,怎么和像素不一致,应该如何换算
  • 有谁知道农历的计算方法以及与公历的互换算法?
  • RGB-HSB-CMYK-Lab转换算法,Photoshop Colorpicker实现方法,欢迎图形图像高手进来讨论!

关键词

  • 数值
  • 鼠标
  • 转换
  • 属性
  • 逻辑
  • dc
  • fromscale
  • toscale
  • twip
  • 换算

得分解答快速导航

  • 帖主:aliaoz

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo