#ifndef __DdxCollection_H__
#define __DdxCollection_H__

#include <map>

namespace mwlmfc{

//	クラス宣言
class CDdxCollection
{
private:
	typedef std::map<int,CWnd*> COLLECTRION_ARY;
	typedef std::map<int,CWnd*>::iterator COLLECTRION_ITERATOR;
	COLLECTRION_ARY m_clct;

public:
	//	コンストラクタ・デストラクタ
	CDdxCollection();
	virtual ~CDdxCollection();

	//	登録等系
	void Add( int nIDC ){ m_clct[nIDC] = new CWnd; }
	void Release();

	//	DoDataExchange()で呼び出す
	void DoDataExchange(CDataExchange* pDX);

	//	実際の操作系
	void EnableWindowAll(BOOL bEnable = TRUE);
};


//	クラス宣言
//template <typename TBase> class CDdxCollection2 : public TBase
class CDdxExDialog : public CDialog
{
private:
	/*typedef std::map<int,CWnd*> COLLECTRION_ARY;
	typedef std::map<int,CWnd*>::iterator COLLECTRION_ITERATOR;
	COLLECTRION_ARY m_clct;*/
	CDdxCollection m_ddxCollection;

public:
	//	コンストラクタ・デストラクタ
	CDdxExDialog(){}
	virtual ~CDdxExDialog(){}

	//	登録等系
	void DdxCollectionAdd( int nIDC ){ m_ddxCollection.Add(nIDC); }
	void DdxCollectionRelease(){ m_ddxCollection.Release(); }

	void DoDataExchange(CDataExchange* pDX){
		CDialog::DoDataExchange(pDX);
		m_ddxCollection.DoDataExchange(pDX);
	}

	//	実際の操作系
	void DdxCollectionEnableAll(BOOL bEnable = TRUE){ }
};

}//namespace mwlmfc

#endif//__DdxCollection_H__