CHARFORMATW structure (richedit.h)

Contains information about character formatting in a rich edit control.

Rich Edit 2.0: The CHARFORMAT2 structure is a Microsoft Rich Edit 2.0 extension of the CHARFORMAT structure. Microsoft Rich Edit 2.0 and later allows you to use either structure with the EM_GETCHARFORMAT and EM_SETCHARFORMAT messages.

Syntax

typedef struct _charformatw {
  UINT     cbSize;
  DWORD    dwMask;
  DWORD    dwEffects;
  LONG     yHeight;
  LONG     yOffset;
  COLORREF crTextColor;
  BYTE     bCharSet;
  BYTE     bPitchAndFamily;
  WCHAR    szFaceName[LF_FACESIZE];
} CHARFORMATW;

Members

cbSize

Type: UINT

Size in bytes of the specified structure. This member must be set before passing the structure to the rich edit control.

dwMask

Type: DWORD

Members containing valid information or attributes to set. This member can be zero, one, or more than one of the following values.

Value Meaning
CFM_ALL
Windows 8: A combination of the following values: CFM_EFFECTS | CFM_SIZE | CFM_FACE | CFM_OFFSET | CFM_CHARSET
CFM_BOLD
The CFE_BOLD value of the dwEffects member is valid.
CFM_CHARSET
The bCharSet member is valid.
CFM_COLOR
The crTextColor member and the CFE_AUTOCOLOR value of the dwEffects member are valid.
CFM_EFFECTS
Windows 8: A combination of the following values: CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK
CFM_FACE
The szFaceName member is valid.
CFM_ITALIC
The CFE_ITALIC value of the dwEffects member is valid.
CFM_OFFSET
The yOffset member is valid.
CFM_PROTECTED
The CFE_PROTECTED value of the dwEffects member is valid.
CFM_SIZE
The yHeight member is valid.
CFM_STRIKEOUT
The CFE_STRIKEOUT value of the dwEffects member is valid.
CFM_UNDERLINE
The CFE_UNDERLINE value of the dwEffects member is valid.

dwEffects

Type: DWORD

Character effects. This member can be a combination of the following values.

Value Meaning
CFE_AUTOCOLOR
The text color is the return value of GetSysColor(COLOR_WINDOWTEXT).
CFE_BOLD
Characters are bold.
CFE_DISABLED
RichEdit 2.0 and later: Characters are displayed with a shadow that is offset by 3/4 point or one pixel, whichever is larger.
CFE_ITALIC
Characters are italic.
CFE_STRIKEOUT
Characters are struck.
CFE_UNDERLINE
Characters are underlined.
CFE_PROTECTED
Characters are protected; an attempt to modify them will cause an EN_PROTECTED notification code.

yHeight

Type: LONG

Character height, in twips (1/1440 of an inch or 1/20 of a printer's point).

yOffset

Type: LONG

Character offset, in twips, from the baseline. If the value of this member is positive, the character is a superscript; if it is negative, the character is a subscript.

crTextColor

Type: COLORREF

Text color. This member is ignored if the CFE_AUTOCOLOR character effect is specified. To generate a COLORREF, use the RGB macro.

bCharSet

Type: BYTE

Character set value. The bCharSet member can be one of the values specified for the lfCharSet member of the LOGFONT structure. Microsoft Rich Edit 3.0 may override this value if it is invalid for the target characters.

bPitchAndFamily

Type: BYTE

Font family and pitch. This member is the same as the lfPitchAndFamily member of the LOGFONT structure.

szFaceName[LF_FACESIZE]

Type: TCHAR[LF_FACESIZE]

Null-terminated character array specifying the font name.

Remarks

To turn off a formatting attribute, set the appropriate value in dwMask but do not set the corresponding value in dwEffects. For example, to turn off italics, set CFM_ITALIC but do not set CFE_ITALIC.

Note

The richedit.h header defines CHARFORMAT as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that is not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header richedit.h

See also

CHARFORMAT2

EM_GETCHARFORMAT

EM_SETCHARFORMAT

EN_PROTECTED

Reference