文本字体
文字格式对象包含文本布局信息(例如对齐、方向、制表位和剪裁)和显示操作(例如剪裁、
对请求的字体不支持的字符的字体替换,以及不使用西欧数字的语言) 的数字替换。 使用文字格式对象可以绘制文字,以设置字符串的格式。文字格式对象简称为字形中文名称 | 英文名称 | 示例 | 作用 |
绘图文字 | GdipDrawString | 绘图文字(图形,宽字,长度,字体,布局,字形,刷子) | 根据字体、布局矩形和字形格式绘制字符串。 |
绘字范围 | GdipMeasureString | 绘字范围(图形,宽字,长度,字体,布局,字形,@矩形,@字数,@行数) | 测量指定字体、格式和布局矩形中的字符串范围。 |
绘字区域 | GdipMeasureCharacterRanges | 绘字区域(图形,宽字,长度,字体,布局,字形,区数,@区组) | 获取一组区域,每个区域在字符串中绑定一系列字符位置。 |
绘控制字 | GdipDrawDriverString | 绘控制字(图形,宽字,长度,字体,刷子,点组,选项,矩阵) | 在指定位置绘制字符。使客户端可以完全控制文本的外观选项。假定客户端已设置要应用的格式和布局。 |
绘字边界 | GdipMeasureDriverString | 绘字边界(图形,宽字,长度,字体,刷子,点组,选项,矩阵,@边界) | 测量指定字符及其相应位置的边界框。 |
字形创建 | GdipCreateStringFormat | 字形创建(格式,语言,@字形) | 基于字符串格式标志和语言创建 文字形式 对象。 |
字形默认 | GdipStringFormatGetGenericDefault | 字形默认(@字形) | 创建一个泛型的默认 文字形式 对象。 |
字形排版 | GdipStringFormatGetGenericTypographic | 字形排版(@字形) | 创建泛型排版的文字格式对象。 |
字形删除 | GdipDeleteStringFormat | 字形删除(字形) | 释放 文字形式 对象使用的资源。 |
字形克隆 | GdipCreateStringFormat | 字形克隆(字形,@新字形) | 复制另一个 文字形式 对象的副本。 |
字改标志 | GdipSetStringFormatFlags | 字改标志(字形,标志) | 设置文字形式对象的字符串格式标志。 |
字取标志 | GdipGetStringFormatFlags | 字取标志(字形,@标志) | 获取文字形式对象的字符串格式标志。 |
字改对齐 | GdipSetStringFormatAlign | 字改对齐(字形,对齐) | 设置文字形式对象的线条对齐方式相对于布局矩形的原点。 |
字取对齐 | GdipGetStringFormatAlign | 字取对齐(字形,@对齐) | 获取文字形式对象的线条对齐方式相对于布局矩形的原点。 |
字改线齐 | GdipSetStringFormatLineAlign | 字改线齐(字形,对齐) | 设置文字形式对象的线条对齐方式相对于布局矩形的原点。 |
字取线齐 | GdipGetStringFormatLineAlign | 字取线齐(字形,@对齐) | 获取文字形式对象的线条对齐方式相对于布局矩形的原点。 |
字改剪裁 | GdipSetStringFormatTrimming | 字改剪裁(字形,剪裁) | 设置文字形式对象的剪裁样式。 |
字取剪裁 | GdipGetStringFormatTrimming | 字取剪裁(字形,@剪裁) | 获取文字形式对象的剪裁样式。 |
字改热键 | GdipSetStringFormatHotkeyPrefix | 字改热键(字形,热键) | 设置文字形式对象的如何显示热键。 |
字取热键 | GdipGetStringFormatHotkeyPrefix | 字取热键(字形,@热键) | 获取文字形式对象的如何显示热键。 |
字改偏移 | GdipSetStringFormatTabStops | 字改偏移(字形,初始偏移,偏移数量,偏移数组) | 设置文字形式对象的制表位的偏移量。 |
字取偏移 | GdipGetStringFormatTabStops | 字取偏移(字形,偏移数量,@初始偏移,@偏移数组) | 获取文字形式对象的制表位的偏移量。 |
字偏移数 | GdipGetStringFormatTabStopCount | 字偏移数(格式,语言,@字形) | 获取文字格式对象的制表位偏移数量。 |
字改替换 | GdipSetStringFormatDigitSubstitution | 字改替换(字形,语言,替换) | 设置文字形式对象的数字替换方式。 |
字取替换 | GdipGetStringFormatDigitSubstitution | 字取替换(字形,@语言,@替换) | 获取文字形式对象的数字替换方式。 |
字改段数 | GdipSetStringFormatMeasurableCharacterRangeCount | 字改段数(字形,数量,范围数组) | 设置文字形式对象的一系列字符范围。 |
字取段数 | GdipGetStringFormatMeasurableCharacterRangeCount | 字取段数(字形,@范围数) | 获取当前设置的可度量字符范围的数量。 |
字体对象定义特定字体的特征,例如系列、高度、大小和样式 (或样式) 组合。 绘制字符串时使用字体对象。 字体系列对象包含组成字体系列的一组字体,简称字系。 字体系列是一组具有相同字样但样式不同的字体。 字体集合类是抽象基类,简称字集。 它包含用于枚举字体集合中字体系列的方法。
中文名称 | 英文名称 | 示例 | 作用 |
字体设备 | GdipCreateFontFromDC | 字体设备(设备,@字体) | 基于当前选定到指定设备的字体对象创建字体对象。 |
字体逻辑 | GdipCreateFontFromLogfontA | 字体逻辑(设备,逻辑,@字体) | 直接从GDI逻辑字体创建字体对象。 |
逻辑字体 | GdipCreateFontFromLogfontW | 逻辑字体(设备,逻辑,@字体) | 直接从GDI逻辑字体创建字体对象。宽字符版 |
字体创建 | GdipCreateFont | 字体创建(宽字系名,字号,样式,单位,@字体) | 基于字体系列、字号(小数)、字体样式、度量单位创建字体对象。 |
字体克隆 | GdipCloneFont | 字体克隆(字体,@字体) | 基于此字体对象创建新的字体对象。 |
字体删除 | GdipDeleteFont | 字体删除(字体) | 未实现。 |
字体系列 | GdipGetFamily | 字体系列(字体,@字系) | 获取此字体所基于的字体系列。 |
字体样式 | GdipGetFontStyle | 字体样式(字体,@样式) | 获取此字体的 字体样式。 |
字体大小 | GdipGetFontSize | 字体大小(字体,小数 @字号) | 获取此字体对象的字体大小。 |
字体单位 | GdipGetFontUnit | 字体单位(字体,@单位) | 获取此字体对象的度量单位。 |
字体高度 | GdipGetFontHeight | 字体高度(字体,图形,@高度) | 获取指定图形设备对象的当前单位中此字体的行距(小数)。 |
字体行距 | GdipGetFontHeightGivenDPI | 字体行距(字体,垂直分辨率,@字号) | 获取此字体的行距(以像素为单位)。 |
字体结构 | GdipGetLogFontA | 字体结构(字体,@逻辑) | 获取此字体对象的逻辑字体属性。 |
字体属性 | GdipGetLogFontW | 字体属性(字体,@逻辑) | 获取此字体对象的逻辑字体属性。 |
字体新类 | GdipNewInstalledFontCollection | 字体新类(@字集) | 定义一个类,该类表示安装在系统上的字体。字集是字体的集合类。 |
字体集合 | GdipNewPrivateFontCollection | 字体集合(@字集) | 集合中的字体可以包括已安装的字体以及尚未安装在系统上的字体。 |
字集删除 | GdipDeletePrivateFontCollection | 字集删除(字集) | 删除创建的字体集合对象。 |
字集数量 | GdipGetFontCollectionFamilyCount | 字集数量(字集,数量) | 获取此字体对象的字体大小。 |
字集列表 | GdipGetFontCollectionFamilyList | 字集列表(字集,数量,@数组,@已收) | 获取此字体对象的字体大小。 |
字集文件 | GdipPrivateAddFontFile | 字集文件(字集,宽文件名) | 将字体文件添加到此专用字体集合。 |
字集内存 | GdipPrivateAddMemoryFont | 字集内存(字体,小数 @字号) | 将包含在系统内存中的字体添加到字体集合。 |
字系创建 | GdipCreateFontFamilyFromName | 字系创建(宽字体名,字集,@字系) | 基于指定的字体系列创建字体系列对象。 |
字系克隆 | GdipCloneFontFamily | 字系克隆(字系,@字系) | 使用字系对象创建新的字系对象副本。 |
字系删除 | GdipDeleteFontFamily | 字系删除(字系) | 释放创建的字系对象。 |
字系无衬 | GdipGetGenericFontFamilySansSerif | 字系无衬(@字系) | 获取一个字系对象,该对象指定泛型无衬线字样。 |
字系衬线 | GdipGetGenericFontFamilySerif | 字系衬线(@字系) | 获取一个字系对象,该对象指定泛型衬线字样。 |
字系单间 | GdipGetGenericFontFamilyMonospace | 字系单间(@字系) | 获取一个字系对象,该对象指定泛型单空间字样。 |
字系名称 | GdipGetFamilyName | 字系名称(字系) | 获取此字体系列的名称。 |
字系取样 | GdipIsStyleAvailable | 字系取样(字系,样式,@是否) | 确定指定的字体样式是否可用于此字体系列。 |
字系高度 | GdipGetEmHeight | 字系高度(字系,样式,@大小) | 获取此字体系列的设计单位(通常称为字号或字高)的大小。 |
字系升序 | GdipGetCellAscent | 字系升序(字系,样式,@上升) | 获取指定字体样式或样式组合的此字体族的单元格升序(以设计单位为单位)。 |
字系降序 | GdipGetCellDescent | 字系降序(字系,样式,@下降) | 获取指定字体样式或样式组合的此字体系列的单元格降序(以设计单位表示)。 |
字系行距 | GdipGetLineSpacing | 字系行距(字系,样式,@行距) | 获取指定字体样式或样式组合的此字体系列的行距(以设计单位为单位)。 |
字体样式-FontStyle 枚举指定字体的字体样式。 样式可以组合使用。
中文名称 | 英文名称 | 数值 | 作用 |
字样正常 | FontStyleRegular | 0 | 指定字样的正常粗细或粗细。 |
字样粗体 | FontStyleBold | 1 | 指定粗体字样。 粗体表示较重的粗细。 |
字样斜体 | FontStyleItalic | 2 | 指定斜体字样,该字样对字符的垂直词干产生明显的倾斜。 |
字样粗斜 | FontStyleBoldItalic | 3 | 将字样指定为粗体和斜体。 |
字样下划 | FontStyleUnderline | 4 | 指定下划线,在字符基线下方显示一行。 |
字样删除 | FontStyleStrikeout | 8 | 指定删除线,它显示通过字符中间绘制的水平线。 |
文字对齐-StringAlignment 枚举指定字符串在引用边界矩形时如何对齐。
边界矩形用于定义文本显示的区域。
中文名称 | 英文名称 | 数值 | 作用 |
对齐近点 | StringAlignmentNear | 0 | 指定对齐方式接近边框的原点。可用于沿行对齐字符或矩形内线条的对齐。 对于从右到左的边框,原点位于右上角。 |
对齐居中 | StringAlignmentCenter | 1 | 指定对齐方式在原点和范围之间居中 (宽度) 格式矩形。 |
对齐远点 | StringAlignmentFar | 2 | 指定对齐方式远 (格式矩形的右侧) 。 |
文字选项-DriverStringOptions 枚举指定驱动程序字符串的呈现间距、方向和质量。
英文名称 | 数值 | 作用 |
DriverStringOptionsCmapLookup | 1 | 指定字符串数组包含 Unicode 字符值。如果未设置此标志,数组中的每个值将解释为字体字形的索引,该字形定义要显示的字符。 |
DriverStringOptionsVertical | 2 | 指定字符串垂直显示。 |
DriverStringOptionsRealizedAdvance | 4 | 指定从第一个字形的位置计算字形位置。 如果未设置此标志,则从坐标数组获取字形位置。 |
DriverStringOptionsLimitSubpixel | 8 | 指定应将更少的内存用于缓存抗锯齿字形。 这也会产生较低的质量。 如果未设置此标志,则会使用更多内存,但质量会更高。 |
文字格式-StringFormatFlags 枚举指定文本布局信息 (如方向和剪裁) 和显示操作
(如省略号插入、数字替换和字体) 不支持的字符的表示形式。
英文名称 | 数值 | 作用 |
StringFormatFlagsDirectionRightToLeft | 0x00000001 | 指定读取顺序为从右到左。 对于水平文本,字符从右到左读取。 对于垂直文本,列从右到左读取。 默认情况下,从左到右读取水平或垂直文本。 |
StringFormatFlagsDirectionVertical | 0x00000002 | 指定在显示设备上垂直绘制单个文本行。 默认情况下,文本行是水平行,每一个新行都低于上一行。 |
StringFormatFlagsNoFitBlackBox | 0x00000004 | 指定允许部分字符悬停字符串的布局矩形。 默认情况下,字符首先在矩形的边界内对齐,然后重新定位仍悬停边界的任何字符,以避免任何悬垂,从而避免影响布局矩形外部的像素。 斜体小写字母f是可能具有悬垂部分的字符的一个示例。 设置此标志可确保字符在视觉上与上方和下方的线条对齐,但可能会导致部分字符(位于布局矩形外)被剪裁或绘制。 |
StringFormatFlagsDisplayFormatControl | 0x00000020 | 指定使用代表字符显示 Unicode 布局控制字符。 |
StringFormatFlagsNoFontFallback | 0x00000400 | 指定对请求的字体中不支持的字符使用备用字体。 默认情况下,任何缺失字符都以“缺少字体”字符显示,通常是一个开放的正方形。 |
StringFormatFlagsMeasureTrailingSpaces | 0x00000800 | 指定每行末尾的空格包含在字符串度量中。 默认情况下,由 返回的边界矩形 绘字范围 方法排除每行末尾的空间。 设置此标志以在度量中包含该空间。 |
StringFormatFlagsNoWrap | 0x00001000 | 指定禁止将文本换行到下一行。 使用原点而不是布局矩形时,隐含 NoWrap。 在矩形内绘制文本时,默认情况下,文本在矩形边界内的最后一个单词边界处被断开,并换行到下一行。 |
StringFormatFlagsLineLimit | 0x00002000 | 指定在布局矩形中仅布局整条线。 默认情况下,布局一直持续到文本末尾或直到剪裁导致不再显示行,以先到者为准。 默认设置允许最后一行被不是行高度的整个倍数的布局矩形部分遮盖。 若要确保只看到整条线,请设置此标志,并注意提供至少与一行高度相同的布局矩形。 |
StringFormatFlagsNoClip | 0x00004000 | 指定允许显示悬停在布局矩形上的字符和在布局矩形外延伸的文本。 默认情况下,将剪裁所有悬垂字符和布局矩形外的文本。 在布局矩形外延伸) 行尾的任何尾随空格 (空格均被剪裁。 因此,如果度量中包含尾随空格,则此标志的设置将影响字符串度量。 如果启用了剪裁,则度量中不包括在布局矩形外延伸的尾随空格。 如果禁用剪裁,则所有尾随空格都包含在度量中,无论它们是否在布局矩形之外。 |
StringFormatFlagsBypassGDI | 0x80000000 | 避开GDI绘制 |
文字剪裁-StringTrimming 枚举指定如何剪裁字符串中的字符,以便字符串适合布局矩形。
布局矩形用于定位和调整显示字符串的大小。
英文名称 | 数值 | 作用 |
StringTrimmingNone | 0 | 指定不执行剪裁。 |
StringTrimmingCharacter | 1 | 指定在布局矩形内最后一个字符的边界处断开字符串。 这是默认值。 |
StringTrimmingWord | 2 | 指定在布局矩形内最后一个单词的边界处断开字符串。 |
StringTrimmingEllipsisCharacter | 3 | 指定在布局矩形内最后一个字符的边界处断开字符串,并在字符后面插入省略号 (...) 。 |
StringTrimmingEllipsisWord | 4 | 指定字符串在布局矩形内最后一个单词的边界处断开,并在单词后面插入省略号 (...) 。 |
StringTrimmingEllipsisPath | 5 | 指定从字符串中删除中心并替换为省略号。 该算法尽可能保留字符串的最后一部分。 |
文字热键-HotkeyPrefix 枚举指定如何显示热键。
有三个选项:不执行任何操作、显示带下划线的热键和隐藏热键下划线。
英文名称 | 数值 | 作用 |
HotkeyPrefixNone | 0 | 指定不发生热键处理。 |
HotkeyPrefixShow | 1 | 指定扫描 Unicode 文本 (&) 的和号,这些文本被解释为热键标记,与在 Windows 用户界面中处理菜单和对话框资源的方式相同。 所有与数对都由单个和号替换。 删除所有单和号,第一个单和号后面的第一个字符显示为下划线。 |
HotkeyPrefixHide | 2 | 指定扫描 Unicode 文本以查找 (&) 的和号,这些文本将作为 HotkeyPrefixShow 中的替换和删除,但不显示下划线。 当不需要辅助功能热键下划线时,可以使用此选项。 |
文字替换-StringDigitSubstitute 枚举指定如何根据用户的区域设置或语言替换字符串中的数字。
英文名称 | 数值 | 作用 |
StringDigitSubstituteUser | 0 | 指定用户定义的替换方案。 |
StringDigitSubstituteNone | 1 | 指定禁用替换。 |
StringDigitSubstituteNational | 2 | 指定与用户区域设置的正式国家/地区语言相对应的替换数字位。 |
StringDigitSubstituteTraditional | 3 | 指定与用户的本机脚本或语言(可能与用户区域设置的正式国家/地区语言不同)相对应的替换数字位。 |