name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1193665761703&lmt=1193665780&format=336x280_as&output=html&correlator=1193665761687&url=http%3A%2F%2Fwww.codeguru.cn%2Fpublic%2Fiframe%2Fwinapiiframe.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=1285758818.1193665762&ga_sid=1193665762&ga_hid=111695597&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_his=8&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency">
函数功能:该函数是由应用程序定义的与函数EnumFontFamilies一起使用的回调函数,它接收用于描述与可用字体的数据。类型FONTENUMPROC定义了一个指向此回调函数的指针,EnumFontFamProc是应用程序定义的函数的名字的占位符。
函数原型:int CALLBACK EnumFontFamProc(ENUMLOGFONT FAR *lpelf, NEWTEXTMETRIC FAR *lpntm, int FontType, LPARAM lParam);
参数:
lpelf:指向结构ENUMLOGFONT的指针,该结构包含字体的逻辑属性。该结构是局部定义的。
lpntm:指向结构NEWTEXTMETRIC的指针,该结构包含TrueType字体的物理属性。如果该字体不是TrueType字体,此参数为指向结构TEXTMETRIC的指针。
FontType:指定字体的类型,此参数可以是下列值的组合:
DEVICE_FONTTYPE, RASTER_FONTTYPE, TRUETYPE_FONTTYPE。
lParam:指向由函数EnumFontFamilies传来的应用程序定义的数据的指针。
返回值:要继续列举,返回值必须是非零值;要停止列举,返回值必须为0。
备注:应用程序必须将此回调函数的地址传给EnumFontFamilies以将函数注册。
RASTER_FONTTYPE, DEVICE_FONTTYPE和TRUETYPE_FONTTYPE等常数可用AND操作符连接起来决定字体的类型。如果RASTER_FONTTYPE位被设置,则该字体是一种光栅字体。如果TRUETYPE_FONTTYPE位被设置,该字体是一种TrueType字体。如果上述两位都未被设置,则该字体是一种向量字体。当一种设备(如激光打印机)支持下载TrueType字体或该字体是一种驻留设备的字体,则DEVICE_FONTTYPE位被设置,当设备是一种显示设备、点阵打印机或其他光栅设备,则该位为0。应用程序也可用DEVICE_FONTTYPE来区别图形设备接口(GDI)提供的光栅字体和设备提供的字体。GDI可以为GDI提供的光栅字体模拟粗体、斜体、下划线和删除线(strikeout)属性,但却不支持设备提供的字体。
Windows CE:字体的物理属性总是保存在TEXTMETRIC结构中。
Windows CE版本1.0不支持TrueType字体。在该版本中,参数FontType的值始终是RASTER_FONTTYPE。
在Windows CE版本2.0,FontType可依赖于Windows CE平台取值为RASTER_FONTTYPE或TRUETYPE_FONTTYPE,任何给定的Windows CE平台只支持光栅字体和TrueType字体其中之一,字体类型(光栅或TrueType)是在系统设计时选择的,应用程序不能修改。
函数原型:int CALLBACK EnumFontFamProc(ENUMLOGFONT FAR *lpelf, NEWTEXTMETRIC FAR *lpntm, int FontType, LPARAM lParam);
参数:
lpelf:指向结构ENUMLOGFONT的指针,该结构包含字体的逻辑属性。该结构是局部定义的。
lpntm:指向结构NEWTEXTMETRIC的指针,该结构包含TrueType字体的物理属性。如果该字体不是TrueType字体,此参数为指向结构TEXTMETRIC的指针。
FontType:指定字体的类型,此参数可以是下列值的组合:
DEVICE_FONTTYPE, RASTER_FONTTYPE, TRUETYPE_FONTTYPE。
lParam:指向由函数EnumFontFamilies传来的应用程序定义的数据的指针。
返回值:要继续列举,返回值必须是非零值;要停止列举,返回值必须为0。
备注:应用程序必须将此回调函数的地址传给EnumFontFamilies以将函数注册。
RASTER_FONTTYPE, DEVICE_FONTTYPE和TRUETYPE_FONTTYPE等常数可用AND操作符连接起来决定字体的类型。如果RASTER_FONTTYPE位被设置,则该字体是一种光栅字体。如果TRUETYPE_FONTTYPE位被设置,该字体是一种TrueType字体。如果上述两位都未被设置,则该字体是一种向量字体。当一种设备(如激光打印机)支持下载TrueType字体或该字体是一种驻留设备的字体,则DEVICE_FONTTYPE位被设置,当设备是一种显示设备、点阵打印机或其他光栅设备,则该位为0。应用程序也可用DEVICE_FONTTYPE来区别图形设备接口(GDI)提供的光栅字体和设备提供的字体。GDI可以为GDI提供的光栅字体模拟粗体、斜体、下划线和删除线(strikeout)属性,但却不支持设备提供的字体。
Windows CE:字体的物理属性总是保存在TEXTMETRIC结构中。
Windows CE版本1.0不支持TrueType字体。在该版本中,参数FontType的值始终是RASTER_FONTTYPE。
在Windows CE版本2.0,FontType可依赖于Windows CE平台取值为RASTER_FONTTYPE或TRUETYPE_FONTTYPE,任何给定的Windows CE平台只支持光栅字体和TrueType字体其中之一,字体类型(光栅或TrueType)是在系统设计时选择的,应用程序不能修改。