リッチエディットコントロールにおける文字の書式に関する情報を格納します。
RichEdit 2.0: CHARFORMAT2構造体はリッチエディット2.0のためにCHARFORMAT構造体を拡張したものです。リッチエディット2.0以降ではメッセージおよびメッセージでどちらの構造体でも使用することができます。
#define LF_FACESIZE 32
typedef struct _charformat {
UINT cbSize; // 構造体のサイズ(=60)
DWORD dwMask; // 有効メンバ
DWORD dwEffects; // 文字の効果
LONG yHeight; // 文字の高さ
LONG yOffset; // ベースラインからのオフセット
COLORREF crTextColor; // 文字の色
BYTE bCharSet; // キャラクタセット
BYTE bPitchAndFamily; // フォントファミリとピッチ
TCHAR szFaceName[LF_FACESIZE]; // フォント名
} CHARFORMAT;
構造体のサイズを指定します。ANSI版CHARFORMAT構造体のサイズは60バイトです。(アライメント処理により構造体の境界が4バイト単位に配置されているため、58バイトではなく60バイトになります。) この構造体をリッチエディットコントロールに渡す前にこのメンバを設定しておかなければなりません。
有効な情報を持つメンバや設定する属性を指定します。0または以下の値の組み合わせになります。
文字の効果を指定します。0または以下の値の組み合わせで指定します。dwMaskメンバで指定されている文字効果のみ有効です。
太字体で表示されます。
イタリック体で表示されます。
アンダーラインを引きます。
取り消し線を引きます。
文字が保護されます。保護されている文字が変更されようとするとき、EN_PROTECTED通知メッセージが送られます。
RichEdit 2.0以降: 3/4ポイントまたは1ピクセルのオフセットに影が表示されます。
文字色がGetSysColor関数にCOLOR_WINDOWTEXTを指定したとき取得される色になります。
文字の高さをtwip単位で指定します(1twip=1/20point=1/1440inch)。dwMaskメンバでCFM_SIZEが指定されているときのみ有効です。
ベースラインからの文字のオフセットを twip 単位で指定します。正数を指定すると上付き文字に、負数を指定すると下付き文字になります。dwMaskメンバでCFM_OFFSETが指定されているときのみ有効です。
文字色を指定します。dwEffectsメンバでCFE_AUTOCOLORを指定している場合はこのメンバは無視されます。dwMaskメンバでCFM_CHARSETが指定されているときのみ有効です。
文字セットの値を指定します。LOGFONT構造体のlfCharSetメンバで指定される値のいずれかを指定することができます。dwMaskメンバでCFM_CHARSETが指定されているときのみ有効です。
フォントファミリとピッチを指定します。このメンバはLOGFONT構造体のlfPitchAndFamily メンバと同じです。
フォント名を表す文字列を指定します。
この構造体はメッセージおよびメッセージで使用されます。
Windows 95 以降 / Windows NT 4.0 以降
| HSP変数 | メンバ | |||
|---|---|---|---|---|
| メンバ名 | オフセット | サイズ | ||
| cfm.0 | cbSize ( = 60 ) | 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バイト目 | 未使用(アライメント処理) | |||
| 4バイト目 | ||||
構造体にbCharSet, bPitchAndFamily, szFaceNameを格納するには
bCharSet = (キャラクタセットの値)
bPitchAndFamily = (フォントファミリの値)
szFaceName = "(フォント名)"
cfm.6 = bCharSet | ( bPitchAndFamily << 8 )
; poke cfm, 24, bCharSet
; poke cfm, 25, bPitchAndFamily
; とすることもできます
(w)poke cfm, 26, szFaceName
構造体からbCharSet, bPitchAndFamily, szFaceNameを取得するには
bCharSet = cfm.6 & $FF bPitchAndFamily = ( cfm.6 >> 8 ) & $FF ; peek bCharSet, cfm, 24 ; peek bPitchAndFamily, cfm, 25 ; とすることもできます (w)peek szFaceName, cfm, 26 ; szFaceNameは文字列変数