BOOL CreateFont( //指定字体高度(逻辑单位)。有三种取值: //>0,字体映射器将高度值转换为设备单位,并与可用字体的字符元高度进行匹配; //=0,字体映射器使用默认的高度值; //<0,字体映射器将高度值转换为设备单位,用其绝对值与可用字体的字符高度进行匹配。nHeight转换后的绝对值不应超过16384个设备单位。 int nHeight, //指定字体中字符的平均宽度(逻辑单位)。 int nWidth, //指定偏离垂线和显示界面X轴之间的角度,以十分之一度为单位。偏离垂线是穿过一行文本中第一个字符和最后一个字符的直线。 int nEscapement, //指定每个字符的基线和设备X轴之间的角度,以十分之一度为单位。 int nOrientation, //指定字体磅数(每1000点中墨点像素数)。可取0到1000之间的任意整数值。 //字体加粗 FW_BOLD int nWeight, //指定字体是否为斜体。 BYTE bItalic, //指定字体是否带有下划线。 BYTE bUnderline, //指定字体是否带有删除线。 BYTE cStrikeOut, //指定字体的字符集。预定义的字符集: BYTE nCharSet, //指定输出精度。输出精度定义了输出与要求的字体高度、宽度、字符方向、移位和间距等的接近程度。它的取值及含义如下(只能取其一): //OUT_CHARACTER_PRECIS;未用。 //OUT_DEFAULT_PRECIS:指定缺省的字体映射器状态。 //OUT_DEVICE_PRECIS:在当系统里有多种字体使用同一个名字时指示字体映射器选择一种设备字体。 //OUT_OUTLINE_PRCIS:在Windows NT中此值指示字体映射器从TrueType和其他基于边框的字体中选择。 //OUT_RASTER_PRECIS:在当系统里有多种字体使用同一个名字时指示字体映射器选择一种光栅字体。 //OUT_STRING_PRECIS:此值没有被字体映射器使用,但是当列举光栅字体时它会被返回。 //OUT_STROKE_PRECIS:没有被字体映射器使用,但是当列举TrueType字体、其他基于边框的字体和向量字体时它会被返回。 //OUT_TT_ONLY_PRECIS:指示字体映射器仅从TrueType字体中选择,如果系统中没有安装TrueType字体,则字体映射返回缺省状态。 //OUT_TT_PRECIS:在当系统里有多种同名的字体时指示字体映射器选择一种TrueType字体。当操作系统含有多种与指定名字同名的字体时, //应用程序可以使用OUT_DEVICE_PRECIS,OUT_RASTER_PRECIS和OUT_TT_PRECIS值来控制字体映射器如何选择一种字体, //例如,如果操作系统含有名字Symbol的光栅和TrueType两种字体,指定OUT_TT_PRECIS使字体映射器选择TrueType方式(指定OUT_TT_ONLY_PRECIS强制字体映射器选择一种TrueType字体,尽管这会给TrueType字体换一个名字)。 BYTE nOutPrecision, //指定裁剪精度。裁剪精度定义了怎样裁剪部分超出裁剪区域的字符。它的取值及含义如下(可取一个或多个值): //CLIP_DEFAULT_PRECIS:指定缺省裁剪状态。 //CLIP_CHARACTER_PRECIS:未用。 //CLIP_STROKE_PRECIS:未被字体映射器使用,但是当列举光栅字体、向量字体或TrueType字体时它会被返回。在Windows环境下,为保证兼容性,当列举字体时这个值总被返回。 //CLIP_MASK:未用。 //CLIP_EMBEDDED:要使用嵌入式只读字体必须使用此标志。 //CLIP_LH_ANGLES:当此值被使用时,所有字体的旋转依赖于坐标系统的定位是朝左的还是朝右的。如果未使用此值,设备字体总是逆时针方向旋转,但其他字体的旋转依赖于坐标系统的定向。 //CLIP_TT_ALWAYS:未用。 BYTE nClipPrecision, //指定字体的输出质量。输出质量定义了GDI将逻辑字体属性匹配到实际物理字体的细致程度。它的各个取值及含义如下(取其一): //DEFAULT_QUALITY:字体的外观不重要。 //DRAFT_QUALITY:字体外观的重要性次于使用PROOF_QUALITY时,对GDI光栅字体,缩放比例是活动的,这意味着多种字体大小可供选择,但质量可能不高,如果有必要,粗体、斜体、下划线、strikeout字体可被综合起来使用。 //PROOF_QUALITY:字符质量比精确匹配逻辑字体字体属性更重要。对GDI扫描字体,缩放比例是活动的,并选择最接近的大小。 // 尽管当使用PROOF_QUALITY时,选择字体大小并不完全匹配,但字体的质量很高,并没有外观上的变形。如果有必要,粗体、斜体、下划线、strikeout字体可被综合起来使用。 BYTE nQuality, //指定字体间距和字体族。低2位用来指定字体的间距,可取下列值中的一个:DEFAULT_PITCH,FIXED_PITCH,VARIABLE_PITCH。高4位指定字体族,取值及含义如下(取其一): //FF_DECORATIVE:新奇的字体,如老式英语(Old English)。 //FF_DONTCARE:不关心或不知道。 //FF_MDERN:笔划宽度固定的字体,有或者无衬线。如Pica、Elite和Courier New。 //FF_ROMAN:笔划宽度变动的字体,有衬线。如MS Serif。 //FF_SCRIPT:设计成看上去象手写体的字体。如Script和Cursive。 //FF_SWISS:笔划宽度变动的字体,无斜线。如MS Sans Serif。 BYTE nPitchAndFamily, LPCTSTR lpszFacename );