TNB Library
クラス | 公開メンバ関数 | 全メンバ一覧
CModelessDialogT< DLG, HASTASK > クラステンプレート

モードレスウィンドウ管理テンプレート. [詳解]

#include <TnbMfcModelessDialog.h>

+ CModelessDialogT< DLG, HASTASK > の継承関係図

公開メンバ関数

 CModelessDialogT (void)
 コンストラクタ [詳解]
 
void Destroy (void)
 [設定] 破棄. [詳解]
 
void DisableWmClose (void)
 [設定] WM_CLOSE 処理禁止. [詳解]
 
void Hide (void)
 [設定] 非表示. [詳解]
 
bool IsViewing (void) const
 [取得] 表示状態 [詳解]
 
bool IsVisible (void) const
 [取得] 表示状態 [詳解]
 
 operator HWND (void)
 [取得] ウィンドウハンドル取得 [詳解]
 
DLG * operator-> (void)
 [取得] ダイアログクラス参照 [詳解]
 
const DLG * operator-> (void) const
 [取得] ダイアログクラス参照 [詳解]
 
void SetParentMenu (HWND hWnd, UINT menuItem, UINT msg=0)
 [設定] 親メニュー設定. [詳解]
 
void Show (void)
 [設定] 表示. [詳解]
 
void Toggle (void)
 [設定] 表示/非表示. [詳解]
 
 ~CModelessDialogT (void)
 デストラクタ [詳解]
 

詳解

template<typename DLG, bool HASTASK = true>
class TNB::MFC::CModelessDialogT< DLG, HASTASK >

モードレスウィンドウ管理テンプレート.

指定のダイアログベースウィンドウを Modeless で表示します。
Show() , Hide() , Destroy() メソッドにより容易に表示(作成)、非表示、破棄できるようになります。
覚え書き
作成したウィンドウの親ウィンドウは NULL です。
親ウィンドウの表示非表示メニューIDを SetParentMenu() で指定すると、Show Hide により自動的に表示チェックが on off します。 ただし、メニューアイテム選択時の Show Hide は自動化できません。親ダイアログのハンドラで xxx.Toggle(); としてください。
// CModelessDialogT<CSybDlg> m_subDlg;
void CFooDlg::OnIniDialog(void)
{
;
m_subDlg.SetParentMenu(GetSafeHwnd(), ID_MENU_LIST_VIEW);
m_subDlg.Hide(); //非表示で作成しておく場合。
;
}
void CFooDlg::OnMenuListView(void)
{
m_listDlg.Toggle();
}
※ CE では SetParentMenu() は使えません。
operator->() があるので、 DLG のメンバに直接アクセスも可能です。
// CModelessDialogT<CSybDlg> m_subDlg;
void CFooDlg::Foo(void)
{
;
HICON hIcon = m_subDlg->GetIcon();
;
}
引数
DLGMFC の CDialog を継承したクラス型
HASTASKtrue ならタスクバーに現れます(def.)。 false なら現れません。
必要ファイル
TnbMfcModelessDialog.h
日付
06/09/20 新規。
07/10/03 簡略化。
08/07/15 Hideでは破棄せず非表示になるようにし、Destoryを別途用意。
09/08/03 SetParentMenu() , Toggle() を追加。
09/08/19 operator HWND() を追加。
10/01/06 閉じる処理改善。閉じる時にメッセージを投げられるようにした。
10/08/05 親ウィンドウを NULL とした。
10/09/01 HASTASK 追加
11/06/09 CE に対応。
11/08/31 CModelessDialogT に改名。旧名は typedef で残す。
12/03/16 DisableWmClose() を新規。

TnbMfcModelessDialog.h78 行目に定義があります。

構築子と解体子

◆ CModelessDialogT()

CModelessDialogT ( void  )

コンストラクタ

TnbMfcModelessDialog.h83 行目に定義があります。

◆ ~CModelessDialogT()

~CModelessDialogT ( void  )

デストラクタ

TnbMfcModelessDialog.h88 行目に定義があります。

関数詳解

◆ Destroy()

void Destroy ( void  )

[設定] 破棄.

ウィンドウを破棄します。

TnbMfcModelessDialog.h171 行目に定義があります。

◆ DisableWmClose()

void DisableWmClose ( void  )

[設定] WM_CLOSE 処理禁止.

デフォルトでは、 WM_CLOSE を受信すると HIDE になるようになっています。 本メソッドはこれを禁止します(何もしなくなります)。

TnbMfcModelessDialog.h211 行目に定義があります。

◆ Hide()

void Hide ( void  )

[設定] 非表示.

ウィンドウを非表示にします。

覚え書き
ウィンドウが作成されていないとき、ウィンドウを作成します。
ウィンドウは破棄されません。破棄する場合、 Destroy() を使用します。

TnbMfcModelessDialog.h142 行目に定義があります。

◆ IsViewing()

bool IsViewing ( void  ) const

[取得] 表示状態

戻り値
true表示中
false非表示

TnbMfcModelessDialog.h110 行目に定義があります。

◆ IsVisible()

bool IsVisible ( void  ) const

[取得] 表示状態

戻り値
true表示中
false非表示

TnbMfcModelessDialog.h120 行目に定義があります。

◆ operator HWND()

operator HWND ( void  )

[取得] ウィンドウハンドル取得

戻り値
ウィンドウハンドル

TnbMfcModelessDialog.h201 行目に定義があります。

◆ operator->() [1/2]

DLG * operator-> ( void  )

[取得] ダイアログクラス参照

戻り値
ダイアログクラスの参照

TnbMfcModelessDialog.h192 行目に定義があります。

◆ operator->() [2/2]

const DLG * operator-> ( void  ) const

[取得] ダイアログクラス参照

戻り値
ダイアログクラスの参照

TnbMfcModelessDialog.h183 行目に定義があります。

◆ SetParentMenu()

void SetParentMenu ( HWND  hWnd,
UINT  menuItem,
UINT  msg = 0 
)

[設定] 親メニュー設定.

注意
CE では、このメソッドはダミーです(機能しません)。
引数
hWnd親ウィンドウ.
menuItem本ダイアログの Show / Hide を管理する親ウィンドウのメニューID。
msg閉じた時に、通知するメッセージ。

TnbMfcModelessDialog.h100 行目に定義があります。

◆ Show()

void Show ( void  )

[設定] 表示.

ウィンドウを表示します。

覚え書き
ウィンドウが作成されていないとき、ウィンドウを作成します。

TnbMfcModelessDialog.h130 行目に定義があります。

◆ Toggle()

void Toggle ( void  )

[設定] 表示/非表示.

表示していなければ、表示します。表示していれば、非表示にします。

TnbMfcModelessDialog.h155 行目に定義があります。