PARAFORMAT

リッチエディットコントロールにおける段落の書式属性に関する情報が格納されます。この構造体は EM_GETPARAFORMAT メッセージおよび EM_SETPARAFORMAT メッセージで使用されます。

Rich Edit 2.0 以降: PARAFORMAT2 構造体はリッチエディット 2.0 のために PARAFORMAT 構造体を拡張したものです。リッチエディット 2.0 以降では EM_GETPARAFORMAT メッセージおよび EM_SETPARAFORMAT メッセージでどちらの構造体でも使用することができます。

#define MAX_TAB_STOPS  32

typedef struct _paraformat {
    UINT  cbSize;                 // 構造体のサイズ(=156)
    DWORD dwMask;                 // 有効メンバ
    WORD  wNumbering;             // ナンバリングオプション
    WORD  wEffects;               // 予約(=0)
    LONG  dxStartIndent;          // 最初の行のインデント
    LONG  dxRightIndent;          // 右側のインデント
    LONG  dxOffset;               // 2行目以降の行のインデント
    WORD  wAlignment;             // 段落の配置
    SHORT cTabCount;              // タブストップの数
    LONG  rgxTabs[MAX_TAB_STOPS]; // タブストップ位置の配列
} PARAFORMAT;

メンバ

cbSize

構造体のサイズをバイト単位で指定します。 156 を指定します。

dwMask

この構造体の設定する有効な情報や属性を指定します。 0 または以下の値の組み合わせになります。

意味
0x00000001 (PFM_STARTINDENT)

dxStartIndent メンバが有効です。

0x00000002 (PFM_RIGHTINDENT)

dxRightIndent メンバが有効です。

0x00000004 (PFM_OFFSET)

dxOffset メンバが有効です。

0x00000008 (PFM_ALIGNMENT)

wAlignment メンバが有効です。

0x00000010 (PFM_TABSTOPS)

cTabStobs メンバと rgxTabStops メンバが有効です。

0x00000020 (PFM_NUMBERING)

wNumbering メンバが有効です。

0x00010000 (PFM_RTLPARA)

Rich Edit 2.0 以降: wEffects メンバが有効です。

0x80000000 (PFM_OFFSETINDENT)

dxStartIndent メンバが有効です。このメンバは相対的な値を取ります。

wNumbering

ナンバリングオプションが格納されます。以下の値のいずれかになります。

意味
0

段落の始めに何も表示しません。

0x0001 (PFN_BULLET)

段落の始めに黒丸“・”を表示します。

wEffects

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

Rich Edit 2.0 以降: 段落の効果を指定するフラグが格納されます。このメンバはテキストオブジェクトモデル( TOM )の互換性のために含まれていて、コントロールによって表示されるテキストには影響しません。以下の値のいずれかになります。

意味
0

左から右への読み取り順によってテキストを表示します。

0x0001 (PFE_RTLPARA)

右から左への読み取り順によってテキストを表示します。

dxStartIndent

twip 単位で指定された段落の最初の行のインデントが格納されます。( 1 point = 20 twip )

dwMask メンバで PFM_OFFSETINDENT が指定されている場合には相対値として扱われ、それぞれの段落の開始インデントとの和になります。

dxRightIndent

twip 単位で指定された段落の右側のインデントが格納されます。ここで指定した値は右側の余白になります。

dxOffset

段落の2行目以降の行のインデントを twip 単位で指定します。この値は、 dxStartIndent メンバで指定された1行目のインデントからの相対値になります。この値が負数のとき、1行目が内側にくぼんで表示されます。この値が正数のとき、1行目が外側に飛び出て表示されます。

wAlignment

段落の配置を指定する値が格納されます。以下の値のいずれかになります。

意味
0x0001 (PFA_LEFT)

段落は左マージンに整列されます。

0x0002 (PFA_RIGHT)

段落は右マージンに整列されます。

0x0003 (PFA_CENTER)

段落は中央に整列されます。

cTabCount

タブストップの数が格納されます。

rgxTabs

タブストップの位置を示す値が格納されます。

対応情報

Windows 95 以降 / Windows NT 4.0 以降

変数との対応

HSP 変数 メンバ
メンバ名 オフセット サイズ
pfm.0 cbSize ( = 156 ) 0 4
pfm.1 dwMask 4 4
pfm.2 下位ワード wNumbering 8 2
上位ワード wEffects 10 2
pfm.3 dxStartIndent 12 4
pfm.4 dxRightIndent 16 4
pfm.5 dxOffset 20 4
pfm.6 下位ワード wAlignment 24 2
上位ワード cTabCount 26 2
pfm.7 rgxTabs[0] 28 4
pfm.38 rgxTabs[31] 152 4

構造体に wNumbering, wReserved, wAlignment, cTabCount を格納するには

pfm.2 = wNumbering | ( wReserved << 16 )
pfm.6 = wAlignment | ( cTabCount << 16 )
;  wpoke cfm,  8, wNumbering
;  wpoke cfm, 10, wReserved
;  wpoke cfm, 24, wAlignment
;  wpoke cfm, 26, cTabCount
;  とすることもできます

構造体から wNumbering, wReserved, wAlignment, cTabCount を取得するには

wNumbering = pfm.2 & $FFFF
wReserved = (pfm.2 >> 16 ) & $FFFF
wAlignment = pfm.6 & $FFFF
cTabCount = (pfm.6 >> 16 ) & $FFFF
;  wpeek wNumbering, cfm,  8
;  wpeek wReserved,  cfm, 10
;  wpeek wAlignment, cfm, 24
;  wpeek cTabCount,  cfm, 26
;  とすることもできます