CHARFORMAT structure of MFC

CHARFORMAT structure of MFC是Microsoft Foundation Classes (MFC)即微軟類庫中字元格式類的結構。結構中不可或缺的兩個成員是dwMask和 dwEffects,前者是定義或設定字元的字型、顏色、粗體、斜體、下劃線等屬性值,後者則是相關屬性的效果。

語義,dwMask,dwEffects,Remarks,

語義

CHARFORMAT Structure
The CHARFORMAT structure 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. Rich Edit 2.0 and later allows you to use either structure with the EM_GETCHARFORMAT and EM_SETCHARFORMAT messages.
Syntax
typedef struct _charformat {
UINT cbSize;
DWORD dwMask;
DWORD dwEffects;
LONG yHeight;
LONG yOffset;
COLORREF crTextColor;
BYTE bCharSet;
BYTE bPitchAndFamily;
TCHAR szFaceName[LF_FACESIZE];
} CHARFORMAT;
Members
cbSize
Size in bytes of the specified structure. This member must be set before passing the structure to the rich edit control.

dwMask

Members containing valid information or attributes to set. This member can be zero, one, or more than one of the following values.
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_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

Character effects. This member can be a combination of the following values.
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 message.
yHeight
Character height, in twips (1/1440 of an inch or 1/20 of a printer's point).
yOffset
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
Text color. This member is ignored if the CFE_AUTOCOLOR character effect is specified. To generate a COLORREF, use the RGB macro.
bCharSet
Character set value. The bCharSet member can be one of the values specified for the lfCharSet member of the LOGFONT structure. Rich Edit 3.0 may override this value if it is invalid for the target characters.
bPitchAndFamily
Font family and pitch. This member is the same as the lfPitchAndFamily member of the LOGFONT structure.
szFaceName
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.
相信大家沒心情看完,現在我只解釋一下dwmask與dweffects的區別:dweffects記錄了字型的部分信息,如粗體,但是這些信息是否有效卻是由dwmask決定的,請看下面的解釋,如:CFM_BOLD The CFE_BOLD value of the dwEffects member is valid.也就是說只有當dwmask&cfm_bold!=0時才表明字型加粗,這也是為什麼在最後help裡面會強調關閉字型作用時,設定dwmask的值,而不是dweffects。(個人愚見,錯誤之處見諒)

相關詞條

熱門詞條

聯絡我們