GDI+中创建Font的构造函数有以下几个:
Font(IN HDC hdc);
Font(IN HDC hdc, IN const LOGFONTA* logfont);
Font(IN HDC hdc, IN const LOGFONTW* logfont);
Font(IN HDC hdc, IN const HFONT hfont);
Font( IN const FontFamily * family, IN REAL emSize, IN INT style = FontStyleRegular, IN Unit unit = UnitPoint );
Font( IN const WCHAR *familyName, IN REAL emSize, IN INT style = FontStyleRegular, IN Unit unit = UnitPoint, IN const * fontCollection = NULL);
可以划分为三类: 使用LOGFONT创建;使用HFONT创建;直接指定几个参数创建。
而HFONT可以使用LOGFONT创建,则使用HFONT创建的方法比较蹩脚,多此一举,而且还得自行销毁HFONT对象,麻烦啊。
直接指定参数创建方法更让人费解,这么少的参数,无法精确控制字体----style也太简单,无法创建FW_THIN,FW_LIGHT等风格字体。
还得决定,使用LOGFONT创建字体,但为啥必须有HDC呢??又让人费解了,我一直没搞懂~~,难道是坐标单位问题??
上代码:
LOGFONTW lfont;
memset( &lfont, 0,

本文介绍了GDI+中创建Font的三种构造函数:使用LOGFONT、HFONT以及直接指定参数创建。其中,使用HFONT创建的方法较为繁琐,需要手动销毁HFONT对象。直接指定参数的方式在精确控制字体样式上存在限制。对于为何使用LOGFONT创建时需要HDC,作者表示疑惑并推测可能与坐标单位有关。

960

被折叠的 条评论
为什么被折叠?



