StringFormatFlags 枚举 (gdiplusenums.h)

StringFormatFlags 枚举指定文本布局信息(如方向和剪辑)和显示作(如省略号插入、数字替换和字体不支持的字符表示)。

Syntax

typedef enum StringFormatFlags {
  StringFormatFlagsDirectionRightToLeft = 0x00000001,
  StringFormatFlagsDirectionVertical = 0x00000002,
  StringFormatFlagsNoFitBlackBox = 0x00000004,
  StringFormatFlagsDisplayFormatControl = 0x00000020,
  StringFormatFlagsNoFontFallback = 0x00000400,
  StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
  StringFormatFlagsNoWrap = 0x00001000,
  StringFormatFlagsLineLimit = 0x00002000,
  StringFormatFlagsNoClip = 0x00004000,
  StringFormatFlagsBypassGDI = 0x80000000
} ;

Constants

 
StringFormatFlagsDirectionRightToLeft
值: 0x00000001
指定阅读顺序从右到左。 对于水平文本,字符从右到左读取。 对于垂直文本,列从右到左读取。 默认情况下,水平或垂直文本从左到右读取。
StringFormatFlagsDirectionVertical
值: 0x00000002
指定在显示设备上垂直绘制单个文本行。 默认情况下,文本行是水平的,每一个新行位于上一行下方。
StringFormatFlagsNoFitBlackBox
值: 0x00000004
指定允许部分字符悬停字符串的布局矩形。 默认情况下,字符首先在矩形的边界内对齐,然后重新定位仍悬停边界的任何字符,以避免任何悬停,从而避免影响布局矩形外部的像素。 斜体小写字母 F (f) 是可能具有悬停部分的字符的示例。 设置此标志可确保字符在视觉上与上方和下方的线条对齐,但可能导致部分字符位于布局矩形外,将被剪裁或绘制。
StringFormatFlagsDisplayFormatControl
值: 0x00000020
指定 Unicode 布局控件字符以具有代表性的字符显示。
StringFormatFlagsNoFontFallback
值: 0x00000400
指定备用字体用于请求的字体中不支持的字符。 默认情况下,任何缺失字符都以“字体缺失”字符(通常是一个打开的正方形)显示。
StringFormatFlagsMeasureTrailingSpaces
值: 0x00000800
指定每行末尾的空间包含在字符串度量中。 默认情况下,边界矩形由
Graphics::MeasureString 方法排除每行末尾的空间。 将此标志设置为在度量中包含该空间。
StringFormatFlagsNoWrap
值: 0x00001000
指定禁用将文本换行到下一行。 使用原点而不是布局矩形时,将隐含 NoWrap。 在矩形中绘制文本时,默认情况下,文本在矩形边界内的最后一个单词边界处断开,并包装到下一行。
StringFormatFlagsLineLimit
值: 0x00002000
指定在布局矩形中仅布局整个线条。 默认情况下,布局会一直持续到文本的末尾,或者直到由于剪裁而不再显示任何行,以先行为准。 默认设置允许最后一行部分被不是整个行高度的布局矩形遮盖。 若要确保只看到整行,请设置此标志,并小心地至少提供一个与一行高度相同的布局矩形。
StringFormatFlagsNoClip
值: 0x00004000
指定允许将布局矩形悬停的字符和在布局矩形外部扩展的文本显示。 默认情况下,在布局矩形外扩展的所有悬停字符和文本都会被剪裁。 在布局矩形外延伸的任何尾随空格(位于线条末尾的空格)都剪裁。 因此,如果度量中包含尾随空格,则此标志的设置将对字符串度量产生影响。 如果启用了剪辑,则度量中不包括在布局矩形外延伸的尾随空格。 如果禁用剪辑,则所有尾随空格都包含在度量中,而不考虑它们是否位于布局矩形之外。
StringFormatFlagsBypassGDI
值: 0x80000000

注解

多个标志集可以产生组合效果:

  • 当同时设置 StringFormatFlagsDirectionVerticalStringFormatFlagsDirectionRightToLeft 时,将垂直绘制单独的文本行。 第一行从布局矩形的右边缘开始;第二行文本位于第一行的左侧,依如此。
  • 如果未设置 StringFormatFlagsDirectionVertical ,并且未设置 StringFormatFlagsDirectionRightToLeft ,则垂直绘制单个文本行。 第一行从布局矩形的左边缘开始;第二行文本位于第一行右侧。
  • 如果设置了 StringFormatFlagsDirectionRightToLeft ,并且未设置 StringFormatFlagsDirectionVertical ,则文本的各个行是水平行,阅读顺序从右到左。 此设置不会更改字符的显示顺序,它只是指定可以读取字符的顺序。
StringFormatFlagsDirectionVerticalStringFormatFlagsDirectionRightToLeft 标志可能会影响字符串对齐方式。

要求

Requirement 价值
最低支持的客户端 Windows XP,Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
Header gdiplusenums.h (包括 Gdiplus.h)

另请参阅

DrawString 方法

设置文本格式

MeasureString 方法

StringAlignment

StringDigitSubstitute

StringFormat::SetFormatFlags

StringTrimming