/////////////////////////////////////
//コントロールクラスCCTRL定義ファイル
/////////////////////////////////////

class CCTRL : public CWND
{
public:
	CFONT m_hFont;							//コントロール全体のフォント情報
public:		//メンバー関数
	virtual bool Init(LPCTSTR, HINSTANCE);
	bool Create(LPCTSTR, DWORD, DWORD, HWND,
				int, int, int, int, int);	//コントロール作成関数
	void SetInstance(HINSTANCE hInst)
					{m_hInstance = hInst;}	//インスタンスを設定
	virtual void SetFont(int, char*);		//フォント設定(直接指定）
};

//初期化関数（コントロール用）
bool CCTRL::Init(LPCTSTR ClassName, HINSTANCE hInstance) {

	m_lpClassName = ClassName;		//このコントロールクラスの名称
	m_hInstance = hInstance;		//このコントロールのインスタンス
	return TRUE;
}

//コントロール作成関数
bool CCTRL::Create(LPCTSTR WindowName, DWORD Style, DWORD ExStyle,
				HWND hParent, int hMenu,
				int x = CW_USEDEFAULT, int y = CW_USEDEFAULT,
				int w = CW_USEDEFAULT, int h = CW_USEDEFAULT) {

	m_hWnd = CreateWindowEx(m_dwExStyle = ExStyle,
					    	m_lpClassName,
							m_lpWindowName = WindowName,
							m_dwStyle = Style,
							m_x = x,
							m_y = y,
							m_Width = w,
							m_Height = h,
							m_hParent = hParent,
							m_hMenu = (HMENU)hMenu,
							m_hInstance,
							m_lpParam
	);
	if(m_hWnd == NULL) {
		MessageBox(0, "コントロールを作れませんでした!", "エラー",
				MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
		return FALSE;
	}
	//コントロールの表示と再描画
	ShowWindow(m_hWnd, SW_SHOWNORMAL);
	UpdateWindow(m_hWnd);
	return TRUE;
}

//------------------------
// フォント設定(直接指定）
//------------------------
void CCTRL::SetFont(int size, char* FontName) {

	m_hFont.SetFont(m_hWnd, size, FontName);
}
