#if !defined(AFX_STRINGLISTCTRL_H__2794C18E_C974_4EA8_A49E_C7CB21980523__INCLUDED_)
#define AFX_STRINGLISTCTRL_H__2794C18E_C974_4EA8_A49E_C7CB21980523__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// StringListCtrl.h : ヘッダー ファイル
//

#include "SortArray.h"

/////////////////////////////////////////////////////////////////////////////
// CStringListCtrl ウィンドウ

class CStringListCtrl : public CListCtrl
{
public:
	class CListItem
	{
	public:
		int				m_image;
		CString			m_text;
		CStringArray	m_subText;
		CStringArray	m_dataText;
		DWORD			m_data;

		int operator>(const CListItem &other) {return m_text > other.m_text;};
		void operator=(const CListItem &other)
		{
			m_image = other.m_image;
			m_text = other.m_text;
			m_subText.Copy(other.m_subText);
			m_dataText.Copy(other.m_dataText);
			m_data = other.m_data;
		};
		CListItem() {m_image = 0;m_data=0;};
		CListItem(const CListItem &other) {*this = other;};
	};

// コンストラクション
public:
	CStringListCtrl();

// アトリビュート
public:

// オペレーション
public:

// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CStringListCtrl)
	//}}AFX_VIRTUAL

// インプリメンテーション
public:
	void Add(CListItem add,int overWrite=1);
	void ClearAll();
	void CopySelectedItem(CStringListCtrl &other,int del,int overWrite);
	void DeleteSelectedItem();
	void UpdateList(int sort=TRUE);
	int IsSelected(int index);
	int GetSelectedItemCount();
	int GetFirstSelect();
	int GetSize();
	void SelectItem(int index);
	CListItem & operator[](int index);
	int FindText(CString text);
	virtual ~CStringListCtrl();

	// 生成されたメッセージ マップ関数
protected:
	//{{AFX_MSG(CStringListCtrl)
		// メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
public:
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

protected:
	CSortArray<CListItem,CListItem&>	m_itemList;
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。

#endif // !defined(AFX_STRINGLISTCTRL_H__2794C18E_C974_4EA8_A49E_C7CB21980523__INCLUDED_)
