CreatePointFont?还是CreateFont?___one_day_ mfc createfont

我需要创建一个指定像素高度的字体,应该用CreatePointFont还是CreateFont呢??

事实证明要用 CreateFont 更合适。

因为我用 CreatePointFont 创建完毕后,在使用时获取到得字高和我设置的是不一致的。

当然,也可能是我对 CreatePointFont 的用法了解的不够透彻。

不管怎么说吧 ,还是 CreateFont 更简单直白一些。

CreateFont

该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 使用完毕需要DeleteObiect 。

函数原型:

  HFONT CreateFont(

  int nHeight, // logical height of font

  int nWidth, // logical average character width

  int nEscapement, // angle of escapement

  int nOrientation, // base-line orientation angle

  int fnWeight, // font weight

  DWORD fdwItalic, // italic attribute flag

  DWORD fdwUnderline, // underline attribute flag

  DWORD fdwStrikeOut, // strikeout attribute flag

  DWORD fdwCharSet, // character set identifier

  DWORD fdwOutputPrecision, // output precision

  DWORD fdwClipPrecision, // clipping precision

  DWORD fdwQuality, // output quality

  DWORD fdwPitchAndFamily, // pitch and family

  LPCTSTR lpszFace // pointer to typeface name string

  );

参数:

cHeight是字体的高度。

  cWidth是字体的宽度。

  cEscapement是字体的倾斜角。

  cOrientation是字体的倾斜角。

  cWeight是字体的粗细。

  bItalic是字体是否斜体。

  bUnderline是字体是否有下划线。

  bStrikeOut是字体是否有删除线。

  iCharSet是字体使用的字符集。

  iOutPrecision是指定如何选择合适的字体。

  iClipPrecision是用来确定裁剪的精度。

  iQuality是怎么样跟选择的字体相符合。

  iPitchAndFamily是间距标志和属性标志。

  pszFaceName是字体的名称。

例子:

CFont font;
font.CreateFont(
12,//nHeight
0,//nWidth
0,//nEscapement
0,//nOrientation
FW_NORMAL,//nWeight
FALSE,//bItalic
FALSE,//bUnderline
0,//cStrikeOut
ANSI_CHARSET,//nCharSet
OUT_DEFAULT_PRECIS,//nOutPrecision
CLIP_DEFAULT_PRECIS,//nClipPrecision
DEFAULT_QUALITY,//nQuality
DEFAULT_PITCH |FF_SWISS, //nPitchAndFamily
CreatePointFont?还是CreateFont?___one_day_ mfc createfont
_T("Arial"));//lpszFacename

//Do something with the font just created...
CClientDC dc(this);

CFont* def_font = dc.SelectObject(&font);

dc.TextOut(5, 5, _T("Hello"),5);
dc.SelectObject(def_font);

//Done with the font. Delete the fontobject.
font.DeleteObject();

CreatePointFont

这个函数提供了一种简单的方法来创建指定字体类型和字体大小 。

函数原型:

  BOOL CreatePointFont(

  int nPointSize,

  LPCTSTR lpszFaceName,

  CDC* pDC = NULL

  );

参数:

nPointSize

  请求的字体的大小 。单位是磅的10倍 。

磅和像素的关系:

国外字体的大小一般是用磅表示,也就是PointSize的单位,1英寸=72磅, (Microsoft WORD中指定字体的大小就是磅单位的)

在实际应用中我们通常使用逻辑点,即象素点数目作为尺寸创建字体,比如用函数CreateFont。或者像LOGFONT中lfHeight和lfWidth,

一般显示器上72磅的字在显示器上高度lfHeight是96个象素点,你输入参数100,表示需要10磅的字体,系统找到最匹配的大约就是10几个象素点的字体(96*10/72)。

  lpszFaceName

  一个CSTring或者一个指向null-terminated(以空为结尾的)字符串指针来标注字体名称。长度不得超过30个字母。函数EnumFontFamilies可列举能够使用的字体。如果lpszFaceName是NULL,那么GDIuses a device-independent typeface.

  pDC

  指向CDC对象的指针,用来将字体大小转化为逻辑单位,如果是NULL,那么就根据屏幕当前的上下文(context)来转化

  返回值

  非零为成功,否则失败

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/324376.html

更多阅读

“四月普洱现象”:跌价?还是崩盘?

系列专题:普洱茶加盟      普洱茶也能成为金融工具?在一些投机者手中,这个疑问早就变为白花花的银子。近期普洱茶跌价,“崩盘”说法一时流传开来。广州茶商对此倒是反应平静,表示已经赚够了,不怕跌价。跌价到底是利好还是利空?业界普

非管理者 考mba 管理者?还是MBA?

“工商管理硕士(MBA)毕业生都该在自己前额烙上骷髅图海盗标记,再加上他们不适合做管理的警告词。他们是商学院的产物,这些学校专把错误的东西教给错误的人。MBA学生中极少有人有任何管理经验,而你无法在教室里教他们如何管理。”看到这

民族主义理性 经济民族主义,理性?还是情绪?

理直气壮的经济民族主义近年以来,外资在中国大举并购,引起广泛关注,有官员在“两会”期间提出“必须坚决制止任何试图垄断中国市场的恶意并购”后,争论更趋白热化,并受到政府高层关注。六月底,国务院六部委公布《国务院关于加快振兴装备

声明:《CreatePointFont?还是CreateFont?___one_day_ mfc createfont》为网友昕夕靡爽分享!如侵犯到您的合法权益请联系我们删除