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