WTLリストビューでのカラム作成とアイテム追加

解説

 WTLやMFC派生のクラスを使えば簡単にリストビューを作れる。例えばアイテムの追加の AddItem()はAPIでのInsertItem()まで呼んでくれて便利。



ソースコード

 太字で示した部分を追加する。


class CxxxView : public CWindowImpl
{
public:
	DECLARE_WND_SUPERCLASS(NULL, CListViewCtrl::GetWndClassName())

	BOOL PreTranslateMessage(MSG* pMsg)
	{
		pMsg;
		return FALSE;
	}

	BEGIN_MSG_MAP(CxxxView)
		MESSAGE_HANDLER(WM_CREATE, OnCreate)
	END_MSG_MAP()

protected:

	LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		LRESULT lRet = DefWindowProc();

		SetFont(AtlGetDefaultGuiFont());

		//リストビューに変更
		SetViewType(LVS_REPORT);

		//1行選択、TIPSによる表示
		SetExtendedListViewStyle(LVS_EX_INFOTIP | LVS_EX_FULLROWSELECT);


		//////////////////////////
		//カラム名設定
		//
		InsertColumn(0, _T("カラム1"), LVCFMT_LEFT,100, -1);
		InsertColumn(1, _T("カラム2"), LVCFMT_LEFT,100, -1);
		InsertColumn(2, _T("カラム3"), LVCFMT_LEFT,100, -1);
		InsertColumn(3, _T("カラム4"), LVCFMT_LEFT,100, -1);

		//////////////////////////
		//アイテム追加
		//
		AddItem(_T("アイテム1"),_T("AAA"),_T("BBB"),_T("CCC"));
		AddItem(_T("アイテム2"),_T("DDD"),_T("EEE"),_T("FFF"));
		AddItem(_T("アイテム3"),_T("GGG"),_T("HHH"),_T("III"));
		AddItem(_T("アイテム4"),_T("JJJ"),_T("KKK"),_T("LLL"));

		return	lRet;
	}

	//
	//	アイテム追加用関数
	//
	bool		AddItem(LPCTSTR pszColumn1,LPCTSTR pszColumn2,LPCTSTR pszColumn3,LPCTSTR pszColumn4)
	{
		int			nIndex;

		nIndex = GetItemCount();
		CListViewCtrl::AddItem(nIndex, 0, pszColumn1);
		CListViewCtrl::AddItem(nIndex, 1, pszColumn2);
		CListViewCtrl::AddItem(nIndex, 2, pszColumn3);
		CListViewCtrl::AddItem(nIndex, 3, pszColumn4);

		return	true;
	}
};

カテゴリー「VC++ TIPS」 のエントリー