CHARFORMAT2W结构 (Rich Edit 2.0)

包含有关富编辑控件中字符格式的信息。 CHARFORMAT2CHARFORMAT 结构的 Microsoft Rich Edit 2.0 扩展。 Microsoft Rich Edit 2.0 允许将任一结构与 EM_GETCHARFORMATEM_SETCHARFORMAT 消息一起使用。

语法

typedef struct _charformat2w {
  UINT     cbSize;
  DWORD    dwMask;
  DWORD    dwEffects;
  LONG     yHeight;
  LONG     yOffset;
  COLORREF crTextColor;
  BYTE     bCharSet;
  BYTE     bPitchAndFamily;
  WCHAR    szFaceName[LF_FACESIZE];
  WORD     wWeight;
  SHORT    sSpacing;
  COLORREF crBackColor;
  LCID     lcid;
  union {
    DWORD dwReserved;
    DWORD dwCookie;
  };
  DWORD    dwReserved;
  SHORT    sStyle;
  WORD     wKerning;
  BYTE     bUnderlineType;
  BYTE     bAnimation;
  BYTE     bRevAuthor;
  BYTE     bUnderlineColor;
} CHARFORMAT2W;

成员

cbSize

类型:UINT

指定结构的大小(以字节为单位)。 将此结构传递给富编辑控件之前,请将 cbSize 设置为 charFORMAT 或 CHARFORMAT2 结构 的大小。 如果 cbSize 等于 CHARFORMAT 结构的大小,则控件仅使用 CHARFORMAT 成员。

dwMask

类型:DWORD

指定包含有效信息的 CHARFORMAT2 结构的各个部分。 dwMask 成员可以是两组位标志中的值的组合。 一组指示有效结构成员。 另一组指示 dwEffects 成员中的有效属性。

设置以下值以指示 dwEffects 成员的有效属性。

价值 意义
CFM_ALL
以下值的组合:CFM_EFFECTS | CFM_SIZE | CFM_FACE | CFM_OFFSET | CFM_CHARSET
CFM_ALL2
以下值的组合:CFM_ALL | CFM_EFFECTS2 | CFM_BACKCOLOR | CFM_LCID | CFM_UNDERLINETYPE | CFM_WEIGHT | CFM_REVAUTHOR | CFM_SPACING | CFM_KERNING | CFM_STYLE | CFM_ANIMATION | CFM_COOKIE
CFM_ALLCAPS
CFE_ALLCAPS 值有效。
CFM_EFFECTS
以下值的组合:CFM_EFFECTS2 | CFM_FONTBOUND | CFM_EXTENDED | CFM_MATHNOBUILDUP | CFM_MATH | CFM_MATHORDINARY
CFM_BOLD
CFE_BOLD 值有效。
CFM_COLOR
CFE_AUTOCOLOR 值有效,或者 crTextColor 成员有效。
CFM_COOKIE
dwCookie 值有效。
CFM_DISABLED
CFE_DISABLED 值有效。
CFM_EXTENDED
CFE_EXTENDED 值有效。
CFM_EFFECTS
以下值的组合:CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK
CFM_EFFECTS2
以下值的组合:CFM_EFFECTS | CFM_DISABLED | CFM_SMALLCAPS | CFM_ALLCAPS | CFM_HIDDEN | CFM_OUTLINE | CFM_SHADOW | CFM_EMBOSS | CFM_IMPRINT | CFM_REVISED | CFM_SUBSCRIPT | CFM_SUPERSCRIPT | CFM_BACKCOLOR
CFM_EMBOSS
CFE_EMBOSS 值有效。
CFM_FONTBOUND
CFE_FONTBOUND 值有效。
CFM_HIDDEN
CFE_HIDDEN 值有效。
CFM_IMPRINT
CFE_IMPRINT 值有效。
CFM_ITALIC
CFE_ITALIC 值有效。
CFM_LINK
CFE_LINK 值有效。
CFM_LINKPROTECTED
CFE_LINKPROTECTED 值有效。
CFM_MATH
CFE_MATH 值有效。
CFM_MATHNOBUILDUP
CFE_MATHNOBUILDUP 值有效。
CFM_MATHORDINARY
CFE_MATHORDINARY 值有效。
CFM_OUTLINE
CFE_OUTLINE 值有效。
CFM_PROTECTED
CFE_PROTECTED 值有效。
CFM_REVISED
CFE_REVISION 值有效。
CFM_SHADOW
CFE_SHADOW 值有效。
CFM_SMALLCAPS
CFE_SMALLCAPS 值有效。
CFM_STRIKEOUT
CFE_STRIKEOUT 值有效。
CFM_SUBSCRIPT
CFE_SUBSCRIPTCFE_SUPERSCRIPT 值有效。
CFM_SUPERSCRIPT
CFE_SUBSCRIPTCFE_SUPERSCRIPT 值有效。
CFM_UNDERLINE
CFE_UNDERLINE 值有效。
 

设置以下值以指示有效的结构成员。

价值 意义
CFM_ANIMATION
bAnimation 成员有效。
CFM_BACKCOLOR
crBackColor 成员有效。
CFM_CHARSET
bCharSet 成员有效。
CFM_COLOR
除非在 dwEffects 成员中设置 CFE_AUTOCOLOR 标志,否则 crTextColor 成员有效。
CFM_FACE
szFaceName 成员有效。
CFM_KERNING
wKerning 成员 有效。
CFM_LCID
lcid 成员有效。
CFM_OFFSET
yOffset 成员有效。
CFM_REVAUTHOR
bRevAuthor 成员有效。
CFM_SIZE
yHeight 成员有效。
CFM_SPACING
sSpacing 成员有效。
CFM_STYLE
sStyle 成员有效。
CFM_UNDERLINETYPE
bUnderlineType 成员有效。
CFM_WEIGHT
wWeight 成员有效。

dwEffects

类型:DWORD

一组指定字符效果的位标志。 某些标志仅用于与Microsoft 文本对象模型(TOM)接口的兼容性;富编辑控件存储值,但不使用它来显示文本。

此成员可以是以下值的组合。

价值 意义
CFE_ALLCAPS
字符都是大写字母。 该值不会影响控件显示文本的方式。 此值仅适用于早于 Microsoft Rich Edit 3.0 的版本。
CFE_AUTOBACKCOLOR
背景色是 GetSysColorCOLOR_WINDOW)的返回值。 如果设置了此标志,则忽略 crBackColor 成员。
CFE_AUTOCOLOR
文本颜色是 GetSysColorCOLOR_WINDOWTEXT)的返回值。 如果设置了此标志,则忽略 crTextColor 成员。
CFE_BOLD
字符为粗体。
CFE_DISABLED
字符以 3/4 磅或一个像素偏移的阴影显示,以较大者为准。
CFE_EMBOSS
字符是浮雕的。 该值不会影响控件显示文本的方式。
CFE_EXTENDED
这些字符是脚本中不太常见的成员。 支持脚本的字体应检查其是否具有此类字符的字形。
CFE_FONTBOUND
字体由富编辑控件选择,因为活动字体不支持字符。 此过程称为字体绑定。
CFE_HIDDEN
对于 Microsoft Rich Edit 3.0 及更高版本,不会显示字符。
CFE_IMPRINT
字符显示为印记字符。 该值不会影响控件显示文本的方式。
CFE_ITALIC
字符为斜体。
CFE_LINK
当鼠标指针位于具有 CFE_LINK 效果的文本上时,富编辑控件可以发送 EN_LINK 通知代码。
CFE_LINKPROTECTED
字符是友好名称链接的一部分。
CFE_MATH
字符位于数学区域中。
CFE_MATHNOBUILDUP
字符不参与数学积聚。 例如,应用于 /时,/将不用于生成分数。
CFE_MATHORDINARY
字符在数学区域中显示为普通文本。
CFE_OUTLINE
字符显示为带轮廓的字符。 该值不会影响控件显示文本的方式。
CFE_PROTECTED
字符受到保护;尝试修改它们将导致 EN_PROTECTED 通知代码。
CFE_REVISED
字符标记为修订。
CFE_SHADOW
字符显示为阴影字符。 该值不会影响控件显示文本的方式。
CFE_SMALLCAPS
字符采用小大写字母。 该值不会影响控件显示文本的方式。
CFE_STRIKEOUT
字符被击出。
CFE_SUBSCRIPT
字符为下标。 CFE_SUPERSCRIPTCFE_SUBSCRIPT 值互斥。 对于这两个值,控件会自动计算偏移量和较小的字号。 或者,可以使用 yHeightyOffset 成员显式指定下标和上标字符的字号和偏移量。
CFE_SUPERSCRIPT
字符为上标。
CFE_UNDERLINE
字符带有下划线。

yHeight

类型:LONG

指定字符高度(1/1440 英寸或打印机点的 1/20)。 若要使用此成员,请设置 dwMask 成员中的 CFM_SIZE 标志。

yOffset

类型:LONG

与基线的字符偏移量(以 twips 为单位)。 如果此成员的值为正值,则字符为上标;如果值为负值,则字符为下标。 若要使用此成员,请设置 dwMask 成员中的 CFM_OFFSET 标志。

crTextColor

类型:COLORREF

文本颜色。 若要使用此成员,请设置 dwMask 成员中的 CFM_COLOR 标志。 如果指定了 CFE_AUTOCOLOR 字符效果,则忽略此成员。 若要生成 COLORREF,请使用 RGB 巨集。

bCharSet

类型:BYTE

字符集值。 它可以是为 LOGFONT 结构 lfCharSet 成员指定的值之一。 若要使用此成员,请设置 dwMask 成员中的 CFM_CHARSET 标志。

bPitchAndFamily

类型:BYTE

指定字体系列和间距。 此成员与 LOGFONT 结构的 lfPitchAndFamily 成员相同。

szFaceName[LF_FACESIZE]

类型:TCHAR[LF_FACESIZE]

指定字体名称的以 null 结尾的字符数组。 若要使用此成员,请设置 dwMask 成员中的 CFM_FACE 标志。

wWeight

类型:WORD

字体粗细。 此成员与 LOGFONT 结构的 lfWeight 成员相同。 若要使用此成员,请设置 dwMask 成员中的 CFM_WEIGHT 标志。

sSpacing

类型:SHORT

字母之间的水平间距(以 twips 为单位)。 此值对富编辑控件显示的文本没有影响;它包含在内,以便与 Windows TOM 接口兼容。 若要使用此成员,请设置 dwMask 成员中的 CFM_SPACING 标志。

crBackColor

类型:COLORREF

背景色。 若要使用此成员,请设置 dwMask 成员中的 CFM_BACKCOLOR 标志。 如果指定了 CFE_AUTOBACKCOLOR 字符效果,则忽略此成员。 若要生成,请使用巨集。

lcid

类型:LCID

一个 32 位区域设置标识符,该标识符包含下一个单词中的语言标识符,以及上一个单词中的排序标识符和保留值。 此成员对富编辑控件显示的文本没有影响,但拼写和语法检查器可以使用它来处理依赖于语言的问题。 可以使用巨集创建 LCID 值。 若要使用此成员,请设置 dwMask 成员中的 CFM_LCID 标志。

dwReserved

类型:DWORD

保留;该值必须为零。

dwCookie

类型:DWORD

客户端 Cookie。 此成员对富编辑控件不透明。

sStyle

类型:SHORT

字符样式句柄。 此值对富编辑控件显示的文本没有影响;它包含在内,以便与 WindowsTOM 接口兼容。 若要使用此成员,请设置 dwMask 成员中的 CFM_STYLE 标志。 有关详细信息,请参阅 TOM 文档。

wKerning

类型:WORD

字号的值,上面要对字符进行刻度(yHeight)。 此值对富编辑控件显示的文本没有影响;它包含在内,以便与 TOM 接口兼容。 若要使用此成员,请设置 dwMask 成员中的 CFM_KERNING 标志。

bUnderlineType

类型:BYTE

指定下划线类型。 若要使用此成员,请设置 dwMask 成员中的 CFM_UNDERLINETYPE 标志。 此成员可以是以下值之一。

价值 意义
CFU_CF1UNDERLINE
结构 CHARFORMAT位下划线映射到 CHARFORMAT2(也就是说,它在此文本上执行 CHARFORMAT 类型的下划线)。
CFU_INVERT
对于 IME 合成,假选择。
CFU_UNDERLINE
带单条实线下划线的文本。
CFU_UNDERLINEDASH
带短划线的带下划线的文本。
CFU_UNDERLINEDASHDOT
带虚线和虚线下划线的文本。
CFU_UNDERLINEDASHDOTDOT
带虚线和双点线的下划线下划线的文本。
CFU_UNDERLINEDOTTED
带虚线下划线的文本。 对于早于 Microsoft Rich Edit 3.0 的版本,文本以纯色下划线显示。
CFU_UNDERLINEDOUBLE
带双行下划线的文本。 富编辑控件显示带有纯下划线的文本。
CFU_UNDERLINEDOUBLEWAVE
显示为 CFU_UNDERLINEWAVE
CFU_UNDERLINEHAIRLINE
显示为 CFU_UNDERLINE
CFU_UNDERLINEHEAVYWAVE
显示为 CFU_UNDERLINEWAVE
CFU_UNDERLINELONGDASH
显示为 CFU_UNDERLINEDASH
CFU_UNDERLINENONE
无下划线。 这是默认值。
CFU_UNDERLINETHICK
显示为 CFU_UNDERLINE
CFU_UNDERLINETHICKDASH
显示为 CFU_UNDERLINEDASH
CFU_UNDERLINETHICKDASHDOT
显示为 CFU_UNDERLINEDASHDOT
CFU_UNDERLINETHICKDASHDOTDOT
显示为 CFU_UNDERLINEDASHDOT
CFU_UNDERLINETHICKDOTTED
显示为 CFU_UNDERLINEDOT
CFU_UNDERLINETHICKLONGDASH
显示为 CFU_UNDERLINEDASH
CFU_UNDERLINEWAVE
RichEdit 4.1 及更高版本:带波浪线下划线的文本。
CFU_UNDERLINEWORD
RichEdit 4.1 及更高版本:仅带下划线。 富编辑控件显示带有纯下划线的文本。

bAnimation

类型:BYTE

文本动画类型。 此值对富编辑控件显示的文本没有影响;它包含在内,以便与 TOM 接口兼容。 若要使用此成员,请设置 dwMask 成员中的 CFM_ANIMATION 标志。

bRevAuthor

类型:BYTE

标识进行修订的作者的索引。 富编辑控件为每个不同的作者索引使用不同的文本颜色。 若要使用此成员,请设置 dwMask 成员中的 CFM_REVAUTHOR 标志。

bUnderlineColor

类型:BYTE

下划线颜色:

  • UnderlineColor_Black = 0x00;
  • UnderlineColor_Blue = 0x01;
  • UnderlineColor_Aqua = 0x02;
  • UnderlineColor_Lime = 0x03;
  • UnderlineColor_Fuchsia = 0x04;
  • UnderlineColor_Red = 0x05;
  • UnderlineColor_Yellow = 0x06;
  • UnderlineColor_White = 0x07;
  • UnderlineColor_Navy = 0x08;
  • UnderlineColor_Teal = 0x09;
  • UnderlineColor_Green = 0x0A;
  • UnderlineColor_Purple = 0x0B;
  • UnderlineColor_Maroon = 0x0C;
  • UnderlineColor_Olive = 0x0D;
  • UnderlineColor_DkGray = 0x0E;
  • UnderlineColor_LtGray = 0x0F;

言论

若要关闭格式设置属性,请设置 dwMask 中的相应值,但不在 dwEffects中设置相应的值。 例如,若要关闭斜体,请设置 CFM_ITALIC 但不设置 CFE_ITALIC

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
标头 richedit.h

另请参阅

CHARFORMAT

COLORREF

EM_GETCHARFORMAT

EM_SETCHARFORMAT

EN_PROTECTED

GetSysColor

LOGFONT

RGB