リッチエディットコントロールにおける文字の書式に関する情報を格納します。
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は文字列変数