Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2351689
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:06:24

GetDeviceCaps(Canvas->Handle,LOGPIXELSY) //Canvas 的 Y 方向的分辨率, 每英寸的像素个数 (dpi)
GetDeviceCaps(Canvas->Handle,LOGPIXELSX) //Canvas 的 X 方向的分辨率, 每英寸的像素个数 (dpi)
某些打印机可能在 X 和 Y 方向的分辨率不同, 所以 X 和 Y 方向的分辨率都要进行计算

英制的“磅”是最常用的打印单位,1英寸=72磅
公制的长度单位换算:1英寸=25.4毫米

Height = 48 * GetDeviceCaps(Canvas->Handle,LOGPIXELSY) / 72;   //48磅
Width  = 12 * GetDeviceCaps(Canvas->Handle,LOGPIXELSX) / 72;   //12磅

Height = 3 * 10 * GetDeviceCaps(Canvas->Handle,LOGPIXELSY) / 25.4;   //3厘米
Width  = 5 * 10 * GetDeviceCaps(Canvas->Handle,LOGPIXELSX) / 25.4;   //5厘米

无论是字体还是图像,都要用这些换算的长度单位。
字体参考
位图要用 Canvas 的 StretchDraw 方法,或者 API 函数 StretchBlt, 按照计算的比例画出

--------------------next---------------------

阅读(1082) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~