/********************************************************************************
*	ファイル名：Text.h															*
*	用　　　途：テキスト表示クラス												*
*	備　　　考：																*
*	履　　　歴：																*
********************************************************************************/
/****************************
*	 コンパイル環境設定		*
****************************/
#pragma once
/****************************
*	インクルードファイル	*
****************************/
#include <afxtempl.h>
/****************************
*		 マクロ定数			*
****************************/
/***** 標準文字フォント *****/
#define FONT_MS_GOTHIC	_T("MS Gothic")
#define FONT_MS_MINCHO	_T("ＭＳ 明朝")
#define FONT_HG_KAISHO	_T("HG正楷書体")
#define FONT_HG_POP		_T("HG創英角ﾎﾟｯﾌﾟ体")
/****************************
*		 構造体定義			*
****************************/
/****************************
*		 クラス定義			*
****************************/
class CTextState { 
public:
			CTextState();
			CTextState( const CTextState& ts );
		   ~CTextState();
	const	CTextState&	operator=( const CTextState& ts );

public:
			void		Init();

protected:
			void		Copy( const CTextState& ts );

public:
			COLORREF	m_nBackColor;		// バックグラウンドカラー
			COLORREF	m_nForeColor;		// フォアグラウンドカラー(文字カラー)
			CString		m_strMsg;			// 表示文字列
};

typedef CArray<CTextState, CTextState&> CTextStateArray;

class CText : public CStatic
{
public:
						CText();
	virtual			   ~CText();

			void				SetForeColor(COLORREF nColor, BOOL bRedraw = TRUE);
			void				SetBackColor(COLORREF nColor, BOOL bRedraw = TRUE);
			COLORREF			GetForeColor() const;
			COLORREF			GetBackColor() const;
			void				SetFontType(INT32 nPoints, LPCTSTR szFontName, BOOL bRedraw = TRUE);
	
			UINT32				SetStateAttr(
												UINT32		uNo,
												LPCTSTR		szMsg,
												COLORREF	nBackColor	= -1,
												COLORREF	nForeColor	= -1,
												BOOL		bSet		= FALSE
											); 
			UINT32				GetState() const;
			UINT32				SetState(UINT32 uNo);

protected:
	virtual	void				PreSubclassWindow();

protected:

	afx_msg HBRUSH				CtlColor(CDC* pDC, UINT uCtlColor);

	DECLARE_MESSAGE_MAP()

protected:
			CFont				m_Font;				// 表示文字フォント
			CBrush				m_BackBrush;		// 表示バックグラウンドブラシ
			COLORREF			m_nBackColor;		// 表示バックグラウンドカラー
			COLORREF			m_nForeColor;		// 表示フォアグラウンドカラー
			UINT32				m_uStateNo;			// 属性番号

			CTextStateArray		m_TextStateArray;	// 文字列属性オブジェクト配列

};

/****************************
*		 関数　宣言			*
****************************/
/****************************
*		 変数　宣言			*
****************************/
