次の方法で共有


CControlBar::CalcDynamicLayout

更新 : 2007 年 11 月

動的ツール バーの寸法を計算するために、フレームワークが呼び出します。

virtual CSize CalcDynamicLayout(
   int nLength,
   DWORD nMode 
);

パラメータ

  • nLength
    コントロール バーの要求した寸法。水平方向の寸法か垂直方向の寸法かは dwMode によります。

  • nMode
    次の定義済みのフラグを使って、動的コントロール バーの高さと幅を調べます。フラグの組み合わせにはビットごとの OR (|) 演算子を使用します。

    レイアウト モード フラグ

    意味

    LM_STRETCH

    コントロール バーのサイズをフレームのサイズに合わせて伸縮するかどうかを示します。バーがドッキング バーではない (ドッキングが利用できない) 場合は設定します。バーがドッキングまたはフリー (ドッキングが利用できる) の場合は設定しません。設定されているときは、LM_STRETCH は nLength を無視し、LM_HORZ 状態を基準にして寸法を返します。LM_STRETCH は、CalcFixedLayout のパラメータ bStretch と同じ働きをします。伸縮と方向の関係の詳細については、メンバ関数を参照してください。

    LM_HORZ

    バーが水平方向か垂直方向かを示します。バーが水平方向のときは設定し、垂直方向のときは設定しません。LM_HORZ は、CalcFixedLayout のパラメータ bHorz と同じ働きをします。伸縮と方向の関係の詳細については、メンバ関数を参照してください。

    LM_MRUWIDTH

    直前に使われていた動的な幅。パラメータ nLength を無視し、直前に使っていた幅を記憶します。

    LM_HORZDOCK

    水平方向の配置寸法。パラメータ nLength を無視し、動的な幅の最大サイズを返します。

    LM_VERTDOCK

    垂直方向の配置寸法。パラメータ nLength を無視し、動的な高さの最大サイズを返します。

    LM_LENGTHY

    nLength が幅の代わりに高さ (Y 方向) を示しているときは設定します。

    LM_COMMIT

    LM_MRUWIDTH をフリー コントロール バーの現在の幅にリセットします。

戻り値

CSize オブジェクトのコントロール バーのサイズをピクセル単位で返します。

解説

CControlBar から派生したクラスで、独自に動的レイアウトを提供するときは、このメンバ関数をオーバーライドします。CToolbar のような CControlBar から派生した MFC クラスは、このメンバ関数をオーバーライドし、独自の実装を提供しています。

必要条件

ヘッダー : afxext.h

参照

参照

CControlBar クラス

階層図

CControlBar::CalcFixedLayout

CToolBar クラス

その他の技術情報

CControlBar のメンバ