CHARFORMAT

来源:互联网 发布:蓝思网络杨帆 编辑:程序博客网 时间:2024/05/22 00:37

win32asm下是在windows.inc里

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记录了字体的部分信息,如粗体,但是这些信息是否有效却是由swmask决定的,请看下面的解释,如:CFM_BOLD The CFE_BOLD value of the dwEffects member is valid.也就是说只有当dwmask&cfm_bold!=0时才表明字体加粗,这也是为什么在最后help里面会强调关闭字体作用时,设置dwmask的值,而不是dweffects。(个人愚见,错误之处见谅)
原创粉丝点击