CHARFORMATA 结构 (richedit.h)

包含有关富编辑控件中字符格式的信息。

Rich Edit 2.0:CHARFORMAT2 结构是 CHARFORMAT 结构的 Microsoft Rich Edit 2.0 扩展。 Microsoft Rich Edit 2.0 及更高版本允许将任一结构用于 EM_GETCHARFORMATEM_SETCHARFORMAT 消息。

语法

typedef struct _charformat {
  UINT     cbSize;
  DWORD    dwMask;
  DWORD    dwEffects;
  LONG     yHeight;
  LONG     yOffset;
  COLORREF crTextColor;
  BYTE     bCharSet;
  BYTE     bPitchAndFamily;
  char     szFaceName[LF_FACESIZE];
} CHARFORMATA;

成员

cbSize

类型:UINT

指定结构的大小(以字节为单位)。 在将结构传递给富编辑控件之前,必须设置此成员。

dwMask

类型:DWORD

包含要设置的有效信息或属性的成员。 此成员可以是零、一个或多个以下值。

价值 意义
CFM_ALL
Windows 8:以下值的组合:CFM_EFFECTS |CFM_SIZE |CFM_FACE |CFM_OFFSET |CFM_CHARSET
CFM_BOLD
dwEffects 成员的CFE_BOLD值有效。
CFM_CHARSET
bCharSet 成员有效。
CFM_COLOR
crTextColor 成员和 dwEffects 成员的CFE_AUTOCOLOR值有效。
CFM_EFFECTS
Windows 8:以下值的组合:CFM_BOLD |CFM_ITALIC |CFM_UNDERLINE |CFM_COLOR |CFM_STRIKEOUT |CFE_PROTECTED |CFM_LINK
CFM_FACE
szFaceName 成员有效。
CFM_ITALIC
dwEffects 成员的CFE_ITALIC值有效。
CFM_OFFSET
yOffset 成员有效。
CFM_PROTECTED
dwEffects 成员CFE_PROTECTED值有效。
CFM_SIZE
yHeight 成员有效。
CFM_STRIKEOUT
dwEffects 成员的CFE_STRIKEOUT值有效。
CFM_UNDERLINE。
dwEffects 成员的CFE_UNDERLINE值有效。

dwEffects

类型:DWORD

字符效果。 此成员可以是以下值的组合。

价值 意义
CFE_AUTOCOLOR
文本颜色是 GetSysColor(COLOR_WINDOWTEXT)的返回值。
CFE_BOLD
字符为粗体。
CFE_DISABLED
RichEdit 2.0 及更高版本: 字符以 3/4 磅或 1 像素偏移的阴影显示,以较大者为准。
CFE_ITALIC
字符为斜体。
CFE_STRIKEOUT
字符被击中。
CFE_UNDERLINE
字符带有下划线。
CFE_PROTECTED
字符受到保护;尝试修改它们将导致 EN_PROTECTED 通知代码。

yHeight

类型:LONG

字符高度(1/1440 英寸或打印机点的 1/20)。

yOffset

类型:LONG

基线中的字符偏移量(以 twips 为单位)。 如果此成员的值为正值,则字符为上标;如果为负数,则字符为下标。

crTextColor

类型:COLORREF

文本颜色。 如果指定了CFE_AUTOCOLOR字符效果,则忽略此成员。 若要生成 COLORREF,请使用 RGB 宏。

bCharSet

类型:BYTE

字符集值。 bCharSet 成员可以是为 LOGFONT 结构 lfCharSet 成员指定的值之一。 Microsoft Rich Edit 3.0 可能会覆盖此值(如果目标字符无效)。

bPitchAndFamily

类型:BYTE

字体系列和音调。 此成员与 LOGFONT 结构的 lfPitchAndFamily 成员相同。

szFaceName[LF_FACESIZE]

类型:TCHAR[LF_FACESIZE]

指定字体名称的以 Null 结尾的字符数组。

言论

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

注意

richedit.h 标头将 CHARFORMAT 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

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

另请参阅

CHARFORMAT2

EM_GETCHARFORMAT

EM_SETCHARFORMAT

EN_PROTECTED

参考