CHARFORMAT2

リッチエディットコントロールにおける文字の書式に関する情報を格納します。 CHARFORMAT2 構造体はリッチエディット 2.0 のために CHARFORMAT 構造体を拡張したものです。リッチエディット 2.0 以降では EM_GETCHARFORMAT メッセージおよび EM_SETCHARFORMAT メッセージでどちらの構造体でも使用することができます。

#define  LF_FACESIZE     32

typedef struct _charformat2 {
    UINT     cbSize;
    DWORD    dwMask;
    DWORD    dwEffects;
    LONG     yHeight;
    LONG     yOffset;
    COLORREF crTextColor;
    BYTE     bCharSet;
    BYTE     bPitchAndFamily;
    TCHAR    szFaceName[LF_FACESIZE];
    WORD     wWeight;
    SHORT    sSpacing;
    COLORREF crBackColor;
    LCID     lcid;
    DWORD    dwReserved;
    SHORT    sStyle;
    WORD     wKerning;
    BYTE     bUnderlineType;
    BYTE     bAnimation;
    BYTE     bRevAuthor;
    BYTE     bReserved1;
} CHARFORMAT2;

メンバ

cbSize

CHARFORMAT2 構造体のサイズを指定します。 ANSI 版では 84 を指定します。この構造体をリッチエディットコントロールに渡す前にこのメンバを 設定しておかなければなりません。

このメンバに CHARFORMAT 構造体のサイズ 60 を指定すると、 CHARFORMAT 構造体のメンバのみが使用されます。

dwMask

有効な情報を持つメンバや設定する属性を指定します。

dwEffects メンバの有効な属性値を指定するのに、以下の値の組み合わせを指定します。

有効な属性値
0x00000001 (CFM_BOLD) CFE_BOLD
0x00000002 (CFM_ITALIC) CFE_ITALIC
0x00000004 (CFM_UNDERLINE) CFE_UNDERLINE
0x00000008 (CFM_STRIKEOUT) CFE_STRIKEOUT
0x00000010 (CFM_PROTECTED) CFE_PROTECTED
0x00000020 (CFM_LINK) CFE_LINK
0x00000040 (CFM_SMALLCAPS) CFE_SMALLCAPS
0x00000080 (CFM_ALLCAPS) CFE_ALLCAPS
0x00000100 (CFM_HIDDEN) CFE_HIDDEN
0x00000200 (CFM_OUTLINE) CFE_OUTLINE
0x00000400 (CFM_SHADOW) CFE_SHADOW
0x00000800 (CFM_EMBOSS) CFE_EMBOSS
0x00001000 (CFM_IMPRINT) CFE_IMPRINT
0x00002000 (CFM_DISABLED) CFE_DISABLED
0x00004000 (CFM_REVISED) CFE_REVISION
0x00030000 (CFM_SUBSCRIPT,CFM_SUPERSCRIPT) CFE_SUBSCRIPT および CFE_SUPERSCRIPT
0x40000000 (CFM_COLOR) CFE_AUTOCOLOR または crTextColor メンバ

また、この構造体の有効なメンバを指定するのに以下の値を組み合わせて指定します。

有効なメンバ
0x00008000 (CFM_REVAUTHOR) bRevAuthor メンバ
0x00040000 (CFM_ANIMATION) bAnimation メンバ
0x00080000 (CFM_STYLE) sStyle メンバ
0x00100000 (CFM_KERNING) wKerning メンバ
0x00200000 (CFM_SPACING) sSpacing メンバ
0x00400000 (CFM_WEIGHT) wWeight メンバ
0x00800000 (CFM_UNDERLINETYPE) bUnderlineType メンバ
0x02000000 (CFM_LCID) lcid メンバ
0x04000000 (CFM_BACKCOLOR) crBackColor メンバ
0x08000000 (CFM_CHARSET) bCharSet メンバ
0x10000000 (CFM_OFFSET) yOffset メンバ
0x20000000 (CFM_FACE) szFaceName メンバ
0x40000000 (CFM_COLOR) crTextColor メンバ

dwEffects メンバに CFE_AUTOCOLOR が指定されていない場合のみ有効です。

0x80000000 (CFM_SIZE) yHeight メンバ
dwEffects

文字の効果を指定するビットフラグです。 0 または以下の値の組み合わせで指定します。 dwMask メンバで指定されている文字効果のみ有効です。

意味
0x0001 (CFE_BOLD)

太字体で表示されます。

0x0002 (CFE_ITALIC)

イタリック体で表示されます。

0x0004 (CFE_UNDERLINE)

アンダーラインを引きます。

0x0008 (CFE_STRIKEOUT)

取り消し線を引きます。

0x0010 (CFE_PROTECTED)

文字が保護されます。保護されている文字が変更されようとするとき、 EN_PROTECTED 通知メッセージが送られます。

0x0020 (CFE_LINK)

マウスポインタが CFE_LINK 効果をもつテキスト上にあるときにリッチエディットコントロールがマウスメッセージを受け取った場合に、 EN_LINK 通知メッセージが送られます。

0x0040 (CFE_SMALLCAPS)

スモールキャップであることを示します。このフラグはコントロールによるテキストの表示のされ方には影響しません。

0x0080 (CFE_ALLCAPS)

大文字であることを示します。このフラグはコントロールによるテキストの表示のされ方には影響しません。この値は Rich Edit 3.0 より前のバージョンだけに適用されます。

0x0100 (CFE_HIDDEN)

Rich Edit 3.0 以降: 文字が表示されません。

0x0200 (CFE_OUTLINE)

輪郭を描かれた文字として表示されます。このフラグはコントロールによるテキストの表示のされ方には影響しません。

0x0400 (CFE_SHADOW)

陰影をつけられた文字として表示されます。このフラグはコントロールによるテキストの表示のされ方には影響しません。

0x0800 (CFE_EMBOSS)

浮き上がった文字として表示されます。このフラグはコントロールによるテキストの表示のされ方には影響しません。

0x1000 (CFE_IMPRINT)

刻印された文字として表示されます。このフラグはコントロールによるテキストの表示のされ方には影響しません。

0x2000 (CFE_DISABLED)

3/4 ポイントまたは 1 ピクセルのオフセットに影が表示されます。

0x4000 (CFE_REVISED)

訂正されたようにマーク付けされます。

0x00010000 (CFE_SUBSCRIPT)

下付き文字です。コントロールは自動的にオフセットサイズとフォントサイズを計算します。

0x00020000 (CFE_SUPERSCRIPT)

上付き文字です。コントロールは自動的にオフセットサイズとフォントサイズを計算します。

0x04000000 (CFE_AUTOBACKCOLOR)

背景色が GetSysColor 関数に COLOR_WINDOW を指定したとき取得される色になります。

0x40000000 (CFE_AUTOCOLOR)

文字色が GetSysColor 関数に COLOR_WINDOWTEXT を指定したとき取得される色になります。

yHeight

文字の高さを twip 単位で指定します( 1 twip = 1/20 point = 1/1440 inch )。 dwMask メンバで CFM_SIZE が指定されているときのみ有効です。

yOffset

ベースラインからの文字のオフセットを twip 単位で指定します。正数を指定すると上付き文字に、負数を指定すると下付き文字になります。 dwMask メンバで CFM_OFFSET が指定されているときのみ有効です。

crTextColor

文字色を指定します。 dwEffects メンバで CFE_AUTOCOLOR を指定している場合はこのメンバは無視されます。 dwMask メンバで CFM_CHARSET が指定されているときのみ有効です。

bCharSet

キャラクタセットの値を指定します。 LOGFONT 構造体の lfCharSet メンバで指定される値のいずれかを指定することができます。 dwMask メンバで CFM_CHARSET が指定されているときのみ有効です。

bPitchAndFamily

フォントファミリとピッチを指定します。このメンバは LOGFONT 構造体の lfPitchAndFamily メンバと同じです。

szFaceName

フォント名を表す文字列を指定します。

wWeight

フォントの太さを指定します。このメンバは LOGFONT 構造体の lfWeight メンバと同じです。 dwMask メンバで CFM_WEIGHT が指定されているときのみ有効です。

sSpacing

文字の文字の間隔を twip 単位で指定します。このメンバはテキストオブジェクトモデル( TOM )の互換性のために含まれていて、コントロールによって表示されるテキストには影響しません。 dwMask メンバで CFM_SPACING が指定されているときのみ有効です。

crBackColor

背景色を指定します。 dwEffects メンバで CFE_AUTOBACKCOLOR を指定している場合はこのメンバは無視されます。 dwMask メンバで CFM_BACKCOLOR が指定されているときのみ有効です。

lcid

ロケール ID を指定します。このメンバはコントロールによって表示されるテキストには影響しませんが、スペル・文法チェッカが言語に依存する問題を扱うのにこの値を使用する可能性があります。 dwMask メンバで CFM_LCID が指定されているときのみ有効です。

dwReserved

予約されています。 0 を指定しなければなりません。

sStyle

文字スタイルのハンドルです。このメンバはテキストオブジェクトモデル( TOM )の互換性のために含まれていて、コントロールによって表示されるテキストには影響しません。 dwMask メンバで CFM_STYLE が指定されているときのみ有効です。

wKerning

このメンバはテキストオブジェクトモデル( TOM )の互換性のために含まれていて、コントロールによって表示されるテキストには影響しません。 dwMask メンバで CFM_KERNING が指定されているときのみ有効です。

bUnderlineType

下線のタイプを指定します。 dwMask メンバで CFM_UNDERLINETYPE が指定されているときのみ有効です。以下のいずれかの値を指定します。

意味
0 (CFU_UNDERLINENONE)

アンダーラインなし

1 (CFU_UNDERLINE)

直線のアンダーライン

2 (CFU_UNDERLINEWORD)

単語のみにアンダーライン。リッチエディットコントロールは直線のアンダーラインを表示します。

3 (CFU_UNDERLINEDOUBLE)

二重線のアンダーライン。 Rich Edit 3.0 より前のバージョンのリッチエディットコントロールは直線のアンダーラインを表示します。

4 (CFU_UNDERLINEDOTTED)

点線のアンダーライン。リッチエディットコントロールは直線のアンダーラインを表示します。

0xFF (CFU_CF1UNDERLINE)

CHARFORMAT 構造体のアンダーラインをテキストに適用します。

bAnimation

テキストアニメーションタイプです。このメンバはテキストオブジェクトモデル( TOM )の互換性のために含まれていて、コントロールによって表示されるテキストには影響しません。 dwMask メンバで CFM_ANIMATION が指定されているときのみ有効です。

bRevAuthor

改訂を行なっている著者を識別するインデックスです。リッチエディットコントロールは、それぞれの著者インデックスに対して、異なった文字色のテキストを使用します。

bReserved1

予約されています。 0 を指定しなければなりません。

対応情報

Windows 95 以降 / Windows NT 4.0 以降

変数との対応 (ANSI 版の場合)

HSP 変数 メンバ
メンバ名 オフセット サイズ
cfm.0 cbSize ( = 84 ) 0 4
cfm.1 dwMask 4 4
cfm.2 dwEffects 8 4
cfm.3 yHeight 12 4
cfm.4 yOffset 16 4
cfm.5 crTextColor 20 4
cfm.6
1バイト目 bCharSet 24 1
2バイト目 bPitchAndFamily 25 1
3バイト目 szFaceName 26 32
4バイト目
cfm.7
cfm.14 1バイト目
2バイト目
3バイト目 wWeight 58 2
4バイト目
cfm.15 1バイト目 sSpacing 60 2
2バイト目
3バイト目 未使用(アライメント処理)
4バイト目
cfm.16 crBackColor 64 4
cfm.17 lcid 68 4
cfm.18 dwReserved 72 4
cfm.19 1バイト目 sStyle 76 2
2バイト目
3バイト目 wKerning 78 2
4バイト目
cfm.20 1バイト目 bUnderlineType 80 1
2バイト目 bAnimation 81 1
3バイト目 bRevAuthor 82 1
4バイト目 bReserved1 83 1