TNB Library
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CLayoutDialog クラス

レイアウトダイアログクラス. [詳解]

#include <TnbMfcLayoutDialog.h>

+ CLayoutDialog の継承関係図

公開メンバ関数

bool ChangeClientSize (const SIZE &sz)
 [設定] サイズ変更. [詳解]
 
bool ChangeMinimumSize (void)
 [設定] 最小サイズ化. [詳解]
 
 CLayoutDialog (LPCTSTR lpszTemplateName, CWnd *pParentWnd=NULL)
 コンストラクタ [詳解]
 
 CLayoutDialog (UINT nIDTemplate, CWnd *pParentWnd=NULL)
 コンストラクタ [詳解]
 
 CLayoutDialog (void)
 コンストラクタ [詳解]
 
void Decide (int x, int y, WPARAM wParam, LPARAM lParam)
 [処理] 決定. [詳解]
 
bool SetLayout (ILayout &lay, HWND zorderTop=HWND_TOP)
 [設定] レイアウト設定. [詳解]
 
void SetResizeMode (bool canHorizontalResize=true, bool canVerticalResize=true)
 [設定] リサイズモード設定. [詳解]
 

静的公開メンバ関数

static bool Decide (const RECT &rect, ILayout &lay, HWND zorderTop=HWND_TOP)
 [設定] レイアウト指定. [詳解]
 
static bool Decide (CWnd *pWnd, ILayout &lay, HWND zorderTop=HWND_TOP)
 [設定] レイアウト指定. [詳解]
 

限定公開メンバ関数

virtual LRESULT WindowProc (UINT message, WPARAM wParam, LPARAM lParam)
 [通知] for processing Windows messages. [詳解]
 

詳解

レイアウトダイアログクラス.

CGroupLayout クラスなどと連携し、ダイアログ上のコントロールのレイアウトを設定、調整するクラスです。

本クラスを CDialog の代わりに継承すると、リレイアウト可能なダイアログになります。
CDialog を使ったダイアログを作る要領でリソースを作成しクラス生成後、 CDialog
を本クラスに置き換える形の実装方法を想定しています。
使用例 (リサイズに対応する場合)
//= 宣言(ヘッダファイル)
class CXxxDlg : public CLayoutDialog // ← CDialog を CLayoutDialog に変更。
// 他の 「CDialog」 も同様
{
:
CStatic m_txtFirst;
CStatic m_txtSecond;
CEdit m_editFirst;
CEdit m_editSecond;
:
}
//= 初期化関数
BOOL CXxxDlg::OnInitDialog()
{
:
// レイアウト設定
CBoxLayout lay;
:
SetLayout(lay);
// ChangeMinimumSize(); // 必要最小サイズにする場合はこの行を有効にする
:
}
Editコントロール.
スタティックコントロール.
bool SetLayout(ILayout &lay, HWND zorderTop=HWND_TOP)
[設定] レイアウト設定.
CLayoutDialog(void)
コンストラクタ
使用例 (レイアウトするだけの場合)
//= 初期化関数
BOOL CXxxDlg::OnInitDialog()
{
:
// レイアウト設定
CBoxLayout lay;
:
CLayoutDialog::Decide(this, lay); //レイアウト
:
}
void Decide(int x, int y, WPARAM wParam, LPARAM lParam)
[処理] 決定.
todo:
親を template にすると、リソースエディタが ダイアログであることを 認識できなくなってしまうため、 現在 親は CDialog 固定です。
必要ファイル
TnbMfcLayoutDialog.h
日付
08/07/17 新規作成

TnbMfcLayoutDialog.h285 行目に定義があります。

構築子と解体子

◆ CLayoutDialog() [1/3]

CLayoutDialog ( void  )

コンストラクタ

TnbMfcLayoutDialog.h291 行目に定義があります。

◆ CLayoutDialog() [2/3]

CLayoutDialog ( LPCTSTR  lpszTemplateName,
CWnd pParentWnd = NULL 
)

コンストラクタ

引数
lpszTemplateNameダイアログ ボックス テンプレート リソース名を表す null で終わる文字列。
pParentWndダイアログ オブジェクトを所有する CWnd 型の親ウィンドウ またはオーナー ウィンドウオブジェクトへのポインタ。 NULL の場合は、ダイアログ オブジェクトの親ウィンドウがアプリケーションのメイン ウィンドウになります。

TnbMfcLayoutDialog.h302 行目に定義があります。

◆ CLayoutDialog() [3/3]

CLayoutDialog ( UINT  nIDTemplate,
CWnd pParentWnd = NULL 
)

コンストラクタ

引数
nIDTemplateダイアログ ボックス テンプレート リソースの ID 番号。
pParentWndダイアログ オブジェクトを所有する CWnd 型の親ウィンドウ またはオーナー ウィンドウオブジェクトへのポインタ。 NULL の場合は、ダイアログ オブジェクトの親ウィンドウがアプリケーションのメイン ウィンドウになります。

TnbMfcLayoutDialog.h314 行目に定義があります。

関数詳解

◆ ChangeClientSize()

bool ChangeClientSize ( const SIZE &  sz)

[設定] サイズ変更.

引数
szクライアントサイズ
戻り値
true成功。
false失敗。

TnbMfcLayoutDialog.h359 行目に定義があります。

◆ ChangeMinimumSize()

bool ChangeMinimumSize ( void  )

[設定] 最小サイズ化.

SetLayout で設定したレイアウトで必要な最小サイズにクライアントサイズを変更します。

戻り値
true成功。
false失敗。

TnbMfcLayoutDialog.h375 行目に定義があります。

◆ Decide() [1/3]

static bool Decide ( const RECT &  rect,
ILayout lay,
HWND  zorderTop = HWND_TOP 
)
static

[設定] レイアウト指定.

引数
[in]rectレイアウト範囲.
[in,out]layレイアウト。実行後、サイズが pWnd のクライアントサイズに変更されています。
zorderTopZオーダの先頭を指定します。通常 HWND_TOP を指定します。 HWND_TOPMOST , HWND_NOTOPMOST , HWND_BOTTOMを指定すると、Zオーダの設定をしません。
戻り値
true成功。
false失敗。

TnbMfcLayoutDialog.h413 行目に定義があります。

◆ Decide() [2/3]

static bool Decide ( CWnd pWnd,
ILayout lay,
HWND  zorderTop = HWND_TOP 
)
static

[設定] レイアウト指定.

引数
[in]pWndダイアログ.
[in,out]layレイアウト。実行後、サイズが pWnd のクライアントサイズに変更されています。
zorderTopZオーダの先頭を指定します。通常 HWND_TOP を指定します。 HWND_TOPMOST , HWND_NOTOPMOST , HWND_BOTTOMを指定すると、Zオーダの設定をしません。
戻り値
true成功。
false失敗。

TnbMfcLayoutDialog.h437 行目に定義があります。

◆ Decide() [3/3]

void Decide ( int  x,
int  y,
WPARAM  wParam,
LPARAM  lParam 
)

[処理] 決定.

覚え書き
SetLayout() で登録したレイアウトの Decide() を実行します。
引数
xX座標。-1なら指定なし。
yY座標。-1なら指定なし。
wParamW パラメータ。本クラスでは使用しません。 本クラスに登録したレイアウトによっては使用される可能性があります。
lParamL パラメータ。本クラスでは使用しません。 本クラスに登録したレイアウトによっては使用される可能性があります。

TnbMfcLayoutDialog.h396 行目に定義があります。

◆ SetLayout()

bool SetLayout ( ILayout lay,
HWND  zorderTop = HWND_TOP 
)

[設定] レイアウト設定.

覚え書き
指定のダイアログのアイテムを、オブジェクトが管理しているレイアウトにします。
引数
[in,out]layレイアウト。実行後、サイズがダイアログのクライアントサイズに変更されています。 クローンが記憶されているので破棄してかまいません。
zorderTopZオーダの先頭を指定します。通常 HWND_TOP を指定します。 HWND_TOPMOST , HWND_NOTOPMOST , HWND_BOTTOMを指定すると、Zオーダの設定をしません。
戻り値
true成功。
false失敗。

TnbMfcLayoutDialog.h341 行目に定義があります。

◆ SetResizeMode()

void SetResizeMode ( bool  canHorizontalResize = true,
bool  canVerticalResize = true 
)

[設定] リサイズモード設定.

覚え書き
デフォルトでは、水平方向、垂直方向共に true が指定されています。
引数
canHorizontalResizefalse を指定すると水平方向のサイズ変更が出来なくなります。
canVerticalResizefalse を指定すると垂直方向のサイズ変更が出来なくなります。

TnbMfcLayoutDialog.h325 行目に定義があります。

◆ WindowProc()

virtual LRESULT WindowProc ( UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
protectedvirtual

[通知] for processing Windows messages.

メッセージ受信したらコールされます。

覚え書き
CWndのメソッドをオーバーライドしています。
引数
messageメッセージ
wParamWPARAM
lParamLPARAM
戻り値
リザルト。

TnbMfcLayoutDialog.h461 行目に定義があります。