CDialogResize

http://toshi.my.land.to/wtl/reference/?CDialogResize
* トップ ページ - WTL - リファレンス - CDialogResize :: 説明 / 解説 / 参照 / 情報 / メンバ / メソッド / イベント ハンドラ

説明

ダイアログ上のコントロールのリサイズを実装するクラスです。

解説

このクラスは、ダイアログに限らず、コントロールを持つどんなウィンドウにも利用できます。
通常、そのウィンドウは WS_THICKFRAME スタイルを持ちます。

このクラスを利用する際は、テンプレート引数に派生クラス自身を渡して継承し、以下の処理を行います。

・ダイアログ リサイズ マップを次のマクロを利用して実装します。

BEGIN_DLGRESIZE_MAP
END_DLGRESIZE_MAP
DLGRESIZE_CONTROL
BEGIN_DLGRESIZE_GROUP
END_DLGRESIZE_GROUP

DLGRESIZE_CONTROL マクロでは、リサイズの方法を以下のフラグで指定しなければなりません。

コントロールのサイズを調整することを示します。
DLSZ_SIZE_X
DLSZ_SIZE_Y
コントロールの座標を調整することを示します。
DLSZ_MOVE_X
DLSZ_MOVE_Y
コントロールを再描画することを示します。
DLSZ_REPAINT
コントロールを中央に配置することを示します。
DLSZ_CENTER_X
DLSZ_CENTER_Y

DLSZ_SIZE_X および DLSZ_SIZE_Y というように、同じ種類の X 座標と Y 座標に関するフラグは組み合わせることができます。
DLSZ_SIZE_X および DLSZ_MOVE_X というように、異なる種類で同じ座標軸に関するフラグを組み合わせると、DLSZ_CENTER_* > DLSZ_SIZE_* > DLSZ_MOVE_* の順に優先されます。

・このクラスに必要なメッセージを処理させるために、CHAIN_MSG_MAP マクロによってこのクラスのメッセージ マップをチェインします。

・ダイアログの初期化時に、DlgResize_Init メソッドを呼び出します。

参照

CDialogImpl

情報

タイプ : テンプレート
継承クラス : なし
ヘッダ : atlframe.h

メンバ

ATL::CSimpleArray<_AtlDlgResizeData> m_arrData;
_AtlDlgResizeData 構造体の配列です。
SIZE m_sizeDialog;
ダイアログのサイズを示す SIZE 構造体です。
POINT m_ptMinTrackSize;
ウィンドウの最小サイズを示す POINT 構造体です。
bool m_bGripper;
サイズ グリップを表示するかどうかを示します。

メソッド

CDialogResize
コンストラクタです。
DlgResize_Init
ダイアログ リサイズを初期化します。
DlgResize_PositionControl
コントロールの位置とサイズを調整します。
DlgResize_UpdateLayout
ダイアログのレイアウトを更新します。

イベント ハンドラ

OnGetMinMaxInfo
WM_GETMINMAXINFO メッセージのハンドラです。
OnSize
WM_SIZE メッセージのハンドラです。


CDialogResize

コンストラクタです。

CDialogResize() : m_bGripper(false);

引数

引数はありません。

解説

コンストラクタでは、m_sizeDialog および m_ptMinTrackSize メンバを初期化します。


DlgResize_Init

ダイアログ リサイズを初期化します。

void DlgResize_Init(bool bAddGripper = true, bool bUseMinTrackSize = true, DWORD dwForceStyle = WS_CLIPCHILDREN);

引数

bool bAddGripper = true
サイズ グリップを表示するかどうかを指定します。既定では true です。

bool bUseMinTrackSize = true
ダイアログの最小サイズを、現在のウィンドウのサイズにするかどうかを指定します。既定では true です。

DWORD dwForceStyle = WS_CLIPCHILDREN
ダイアログに必ず追加するスタイルを指定します。既定では WS_CLIPCHILDREN です。

戻り値

戻り値はありません。

解説

bUseMinTrackSize に true を指定することによって、リソースによってダイアログを作成している場合に、ダイアログがリソースで設定したサイズ以下にリサイズされるのを防ぐことができます。


DlgResize_PositionControl

コントロールの位置とサイズを調整します。

bool DlgResize_PositionControl(int cxWidth, int cyHeight, RECT& rectGroup, _AtlDlgResizeData& data, bool bGroup, _AtlDlgResizeData* pDataPrev = NULL);

引数

int cxWidth
ダイアログの幅を指定します。

int cyHeight
ダイアログの高さを指定します。

RECT& rectGroup
コントロールのグループの RECT 構造体を指定します。

_AtlDlgResizeData& data
対象となる _AtlDlgResizeData 構造体を指定します。

bool bGroup
グループかどうかを指定します。

_AtlDlgResizeData* pDataPrev = NULL
前の _AtlDlgResizeData 構造体を指定します。既定では NULL です。

戻り値

調整に成功したかどうかを返します。

解説

このメソッドは、DlgResize_UpdateLayout メソッドが呼び出します。通常呼び出す必要はありません。


DlgResize_UpdateLayout

ダイアログのレイアウトを更新します。

void DlgResize_UpdateLayout(int cxWidth, int cyHeight);

引数

int cxWidth
ダイアログの幅を指定します。

int cyHeight
ダイアログの高さを指定します。

戻り値

戻り値はありません。

解説

このメソッドは、OnSize ハンドラが呼び出します。通常呼び出す必要はありません。


OnGetMinMaxInfo

WM_GETMINMAXINFO メッセージのハンドラです。

LRESULT OnGetMinMaxInfo(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);

引数

UINT /*uMsg*/
WM_GETMINMAXINFO メッセージです。

WPARAM /*wParam*/
メッセージに付加されたパラメータです。このハンドラでは使用されません。

LPARAM lParam
メッセージに付加されたパラメータです。

BOOL& /*bHandled*/
メッセージを処理したかどうかを示します。このハンドラでは使用されません。

戻り値

常に 0 を返します。

解説

このハンドラは、m_ptMinTrackSize メンバに有効な値が格納されている場合、ダイアログの最小サイズをその値に設定します。


OnSize

WM_SIZE メッセージのハンドラです。

LRESULT OnSize(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/);

引数

UINT /*uMsg*/
WM_SIZE メッセージです。

WPARAM wParam
メッセージに付加されたパラメータです。

LPARAM lParam
メッセージに付加されたパラメータです。

BOOL& /*bHandled*/
メッセージを処理したかどうかを示します。このハンドラでは使用されません。

戻り値

常に 0 を返します。

解説

このハンドラは、ウィンドウの表示状態に応じてサイズ グリップの表示を更新し、ウィンドウが最小化されていない場合、DlgResize_UpdateLayout メソッドを呼び出します。


Last Modified : 2010/03/01 (Mon.) 18:04:55

Librarian Version 0.3.1.5
By Toshi

ページの先頭へ戻る
リファレンスへ戻る
WTL へ戻る
トップ ページへ戻る

* トップ ページ - WTL - リファレンス - CDialogResize :: 説明 / 解説 / 参照 / 情報 / メンバ / メソッド / イベント ハンドラ
http://toshi.my.land.to/wtl/reference/?CDialogResize
(C) 2005 - 2010 Toshi, All Rights Reserved.