字体缩放(100分)

  • 主题发起人 主题发起人 心心
  • 开始时间 开始时间

心心

Unregistered / Unconfirmed
GUEST, unregistred user!
在PRINTER中如何使所使用的字体做到精确缩放?
 
自己慢慢描,haha
 
用SetMapMode设定pinter dc的影射模式为MM_TEXT
就是一逻辑点等于一物理点
这样你输出的字体,
假如是300dpi的打印机,那么字体大小为40的字和屏幕上大小为10的字差不多
假如是600dpi的打印机,那么字体大小为80的字和屏幕上大小为10的字差不多

这样你可以比较精确的调整大小.

当然SetMapMode设定pinter dc的影射模式为其他,
只要逻辑点数多一点,就可以比较精确的调整字体大小

 
PIPI,能否给一个例
 
关于SETMAPMODE的VC例程,->后的方法DELPHI中也有,请查HELP
pDC->SetMapMode(MM_LOMETRIC);
pDC->SetMapMode(MM_ANISOTROPIC);
size=pDC->GetViewportExt();
pDC->SetViewportExt(size.cx,-size.cy);
pDC->Textout(100,100,'sdfsdf');//输出文字

pDC->SetMapMode(MM_TEXT);
另外,请查LOGFONT结构,若进行精确缩放,需用一个LOGFONT
结构变量,将其中一些参数设置正确,比如要尺寸优先,而不是
外观优先.另外LOGFONT中WIDTH和HEIGHT需用负数才可有精确(记不请了,你再查一下)
尺寸,比如以上面的设置为例,若HEIGHT=-100,则打印出的效果才
会是10mm,若HEIGHT=100,打印出的是100磅.
 
多人接受答案了。
 
后退
顶部