惧留孙网

juliusun.com

惧留孙网 > 惧留孙课堂 > 在线手册 > WINDOWS API手册 > CreateFont
acceptAdjustWindowRectAdjustWindowRectExAngleArcAppendMenuArcArcToBeginPaintbindBitBltBM_GETCHECKBM_SETCHECKButton_GetCheckButton_SetCheckClientToScreenclosesocketconnectCreateCompatibleDCCreateDialogCreateDialogParamCreateFontCreateMenuCreatePenCreatePopupMenuCreateSolidBrushCreateWindowCreateWindowExDefWindowProcDeleteDCDeleteObjectDestroyCursorDestroyIconDestroyMenuDestroyWindowDialogBoxDialogBoxParamDialogProcDispatchMessageDrawIconDrawIconExEdit_HideBalloonTipEdit_ShowBalloonTipEDITBALLOONTIPEllipseEM_HIDEBALLOONTIPEM_SHOWBALLOONTIPEndDialogEndPaintFillRectFrameRectGetArcDirectionGetClientRectGetDlgItemGetDlgItemTextGetMessageGetStockObjectGetSystemMetricsGetTextAlignGetWindowTextGetWindowTextLengthInvalidateRectIsDialogMessageLineTolistenLoadCursorLoadIconLoadImageMAKEINTRESOURCEMessageBoxMoveToExMSGPiePOINTPolygonPolylinePolylineToPolyPolylinePostMessagePostQuitMessagePostThreadMessageRectanglerecvRegisterClassRegisterClassExRoundRectScreenToClientSelectObjectsendSendDlgItemMessageSendMessageSetArcDirectionSetBkColorSetBkModeSetDlgItemTextSetPixelSetTextAlignSetTextColorSetWindowTextShowWindowsocketstrcmpStretchBltstrlenTextOutTrackPopupMenuTrackPopupMenuExTranslateMessageUnregisterClassUpdateWindowwcscmpwcslenWindowProcWinMainWM_CHARWM_CLOSEWM_COMMANDWM_CREATEWM_DESTROYWM_GETTEXTWM_GETTEXTLENGTHWM_INITDIALOGWM_KEYDOWNWM_KEYUPWM_LBUTTONDBLCLKWM_LBUTTONDOWNWM_LBUTTONUPWM_MBUTTONDBLCLKWM_MBUTTONDOWNWM_MBUTTONUPWM_MOUSEHWHEELWM_MOUSEMOVEWM_MOUSEWHEELWM_NCDESTROYWM_NCHITTESTWM_PAINTWM_QUITWM_RBUTTONDBLCLKWM_RBUTTONDBLCLKWM_RBUTTONDOWNWM_RBUTTONUPWM_SETFONTWM_SETTEXTWM_XBUTTONDBLCLKWM_XBUTTONDOWNWM_XBUTTONUPWNDCLASSWNDCLASSEXWSACleanupWSADATAWSAStartupwsprintf

CreateFont 函数

用用户标识的字符特征,来创建一个逻辑字体。被创建后的逻辑字体,接下来可以被任何设备环境选中。
 函数原型:
 HFONT CreateFont (
intnHeight,
intnWidth,
intnEscapement,
intnOrientation,
intfnWeight,
DWORDfdwItalic,
DWORDfdwUnderline,
DWORDfdwStrikeOut,
DWORDfdwCharSet,
DWORDfdwOutputPrecision,
DWORDfdwClipPrecision,
DWORDfdwQuality,
DWORDfdwPitchAndFamily,
LPCTSTRlpszFace
 );
参数
nHeight
类型:int
指定字体的字符单元或字符的逻辑单位高度,字符的高度值(也被称为em高度)是指字符单元高度值减去内部标头值。字体映射器以如下方式解释nHeight指定的值,各值含义为:
>0:字体映射器转换这个值以设备单位,并和已有字体的单元高度相匹配。
0:字体映射器转换在选择匹配时用一个缺省的高度值。
<0:字体映射器转换这个值到设备单位,并将它的绝对值和已有字体的字符高度相匹配。

比较所有的高度,字体映射器选择不超过要求大小的最大字体。
此映射当字体第一次被使用时发生。
对于MM_TEXT映射方式,可以用下面的公式为一种指定了点大小的字体确定高度:

nHeight=-MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY),72)

nWidth
类型:int
求字体的字符的逻辑单位的平均宽度。如果此值为0,体映射器选择一个值,被选择的值是由比较当前设备的特征系数与可使用字体的数字化特征系数之差的绝对值而确定的。

nEscapement
类型:int
指定移位向量和设备X轴之间的一个角度,以十分之一度为单位。移位向量平行于正文行的基线。

Windows NT:当图形设备设置为GM_ADVANCED时,可以不依赖字符串的字符的定位角而指定字符串的移位角。

当图形模式被设置为GM_COMPATIBLE时,nEscapement同时指定移位角和定位角,可以设置nEscapement和nOrientation为相同的值。

Windows 95:nEscapement同时指定移位角和定位角,可设置nEscapement和nOrientation为相同的值。

nOrientation
类型:int
指定每个字符的基线和设备X轴之间的角度。

fnWeight
类型:int
在0到1000之间指定字体的权值,如400表示标准体,700表示黑(粗)体,如果此值为0,则使用缺省的权值。

系统预定义的值如下:

宏名宏值
FW_DONTCARE0
FW_THIN100
FW_EXTRALIGHT200
FW_ULTRALIGHT200
FW_LIGHT300
FW_NORMAL400
FW_REGULAR400
FW_MEDIUM500
FW_SEMIBOLD600
FW_DEMIBOLD600
FW_BOLD700
FW_EXTRABOLD800
FW_ULTRABOLD800
FW_HEAVY900
FW_BLACK900

fdwItalic
类型:DWORD
如果设置为TRUE,则字体设置为斜体。

fdwUnderline
类型:DWORD
如果设置为TRUE,则字体增加下划线。

fdwStrikeOut
类型:DWORD
如果设置为TRUE,则字体增加删除线。

fdwCharSet
类型:DWORD
字符集,预定义值如下:

● ANSI_CHARSET
● BALTIC_CHARSET
● CHINESEBIG5_CHARSET
● DEFAULT_CHARSET
● EASTEUROPE_CHARSET
● GB2312_CHARSET
● GREEK_CHARSET
● HANGUL_CHARSET
● MAC_CHARSET
● OEM_CHARSET
● RUSSIAN_CHARSET
● SHIFTJIS_CHARSET
● SYMBOL_CHARSET
● TURKISH_CHARSET
● VIETNAMESE_CHARSET


韩语版Windows:

● JOHAB_CHARSET

中东语言版Windows:

● ARABIC_CHARSET
● HEBREW_CHARSET

泰语版Windows:

● THAI_CHARSET

值 OEM_CHARSET 设置字符集依赖系统。
可以使用DEFAULT_CHARSET值来允许字体的名字和大小来充分描述逻辑字体。如果指定的字体名不存在,任何字符集的字体都可以替代指定的字体,所以应该小心地用DEFAULT_CHARSET来避免不期望的结果出现。

操作系统中存在其他字符集的字体。如果一个应用程序用一种未知字符集的字体,则应用程序不会试图去翻译或解释用那种字体写出来的字符串。

在字体映射过程中此参数很重要。为确保获得一致的结果,指定一个特殊的字符集。如果在lpszFace参数中指定了一个字体名,确定fdwCharSet值与由lpszFace指定的字体字符集是否匹配。


fdwOutputPrecision
类型:DWORD
指定输出精度,输出精度义输出与要求的字体高度、宽度、字符定位、移位、字符间距和字符类型的匹配程序,它可取下列值之一:

意义
OUT_CHARACTER_PRECIS未被使用
OUT_DEFAULT_PRECIS默认的映射器映射状态
OUT_DEVICE_PRECIS指示字体映射器在当系统里有多种字体使用同一个字体使用同一个名字时选择一种设备字体
OUT_OUTLINE_PRECIS在Windows NT中此值指示字体映射器从TrueType和其他基于边框的字体中选择。
OUT_PS_ONLY_PRECIS指示字体映射器仅选择PostScript字体。如果系统没有安装PostScript字体,字体映射器返回默认状态。
OUT_RASTER_PRECIS指示字体映射器在当系统里有多种字体使用同一个名字时选择一种光栅字体
OUT_STRING_PRECIS此值没有被字全映射器使用,但是当扫描字体被列举时作为返回值。
OUT_STROKE_PRECIS在Windows NT中此值没有被字体映射器使用,但是当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字体换一个名字。

fdwClipPrecision
类型:DWORD
指定裁剪精度,裁剪精度定义如何裁剪部分超出裁剪区的字符,它可取一个或多个下列值:

意义
CLIP_CHARACTER_PRECIS未被使用
CLIP_DEFAULT_PRECIS指定默认裁剪状态
CLIP_DFA_DISABLEWindows XP SP1: 关闭字体关联。注意:这个标志在Windows Server 2003以上版本系统上,不保证会产生任何影响
CLIP_EMBEDDED使用嵌入的只读字体,必须使用这个标志
CLIP_LH_ANGLES:当此值被使用时,所有字体的旋转依赖于坐标系统的定位是朝左的还是朝右的。

如果未使用此值,设备字体总是逆时针方向旋转,但其他字体的旋转依赖于坐标系统的定向。要得到更多关于坐标系统定向的信息,参见参数orientation。
CLIP_MASK未被使用
CLIP_DFA_OVERRIDE关闭字体关联,这个标志虽然与CLIP_DFA_DISABLE类似,但是在某些情况下,会导致问题,建议使用CLIP_DFA_DISABLE。
CLIP_STROKE_PRECIS未被字体映射器使用,但是当光栅字体、向量字体或TrueType字体被列举时作为返回值。在Windows环境下,为保证兼容性,当列举字体时这个值总被返回。
CLIP_TT_ALWAYS未被使用

fdwQuality
类型:DWORD
指向输出质量,输出质量定义GDI如何仔细地将逻辑字体属性与实际物理字体属性相匹配。它可取下列值之一:

意义
ANTIALIASED_QUALITY如果字体支持,且不太大或太小,字体表现无锯齿或平滑。
CLEARTYPE_QUALITY如果设置,文本ClearType无锯齿。
DEFAULT_QUALITY字体的外观不重要
DRAFT_QUALITY字体外观的重要性次于使用PROOF_QUALITY时,对GDI光栅字体,缩放比例是活动的,这意味着多种字体大小可供选择,但质量可能不高,如果有必要,粗体、斜体、下划线、strikeout字体可被综合起来使用
NONANTIALIASED_QUALITY字体可能显示锯齿,也就是说,不会做平滑字体的工作
PROOF_QUALITY字符质量比精确匹配逻辑字体字体属性更重要。对GDI扫描字体,缩放比例是活动的,并选择最接近的大小。尽管当使用PROOF_QUALITY时,选择字体大小并不完全匹配,但字体的质量很高,并没有外观上的变形。如果有必要,粗体、斜体、下划线、strikeout字体可被综合起来使用

fdwPitchAndFamily
类型:DWORD
指定字体间距和字体族,低端二位指定字体的字符间距,它可取下列值之一:

● DEFAULT_PITCH
● FIXED_PITCH
● VARIABLE_PITCH

高端四位指定字体族,可取下列值之一:

意义
FF_DECORATIVE新奇的字体,如老式英语(Old English
FF_DONTCARE使用默认字体
FF_MODERN笔划宽度固定的字体,有或者无衬线。如Pica、Elite和Courier New
FF_ROMAN笔划宽度变动的字体,有衬线。如MS Serif
FF_SCRIPT设计成看上去象手写体的字体。如Script和Cursive
FF_SWISS笔划宽度变动的字体,无斜线。如MS Sans Serif


应用程序可以用运算符OR将字符间距和字体族组合起来给fdwPitchAndFamily赋值。

字体族描述一种字体的普通外观,当所有的精确字样都不能使用时,可用它们来指定字体。

lpszFace
类型:LPCTSTR
指向指定字体的字样名的、以\0结束的字符串指针,字符串的长度不能超过32个字符(包括字符\0)。

如果lpszFace为NULL或指向一个空串,GDI使用能匹配其他属性的第一种字体。
返回值
类型:HFONT
如果成功,返回逻辑字体句柄。
如果失败,返回NULL。
备注
当不再使用逻辑字体,可以使用 DeleteObject 删除它来释放字体资源。
支持
最低桌面系统支持Windows 2000 Professional
头文件Wingdi.h (已包含在Windows.h中)
Gdi32.lib
DLLGdi32.dll
UNICODE版本名CreateFontW
ANSI版本名CreateFontA

作者:QQ:3304576112 交流QQ群:316930386 C语言窗口程序学习群 本站保留本页版权,可共享网址,匆复制内容

抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的