VC/MFCダイアログでビューを作成し、ビュー領域にListCtrlコントロールを追加


ダイアログボックスに表示するカスタムviewクラス
class CGroupMenuView : public CScrollView { protected:  CGroupMenuView();
………………
…………
};
 
class CWorkView : public CScrollView { protected:  CWorkView(); 
…………
…………
};
 
	// 
	{
		CCreateContext cx;   
		cx.m_pNewViewClass = RUNTIME_CLASS( CGroupMenuView ) ;   
		cx.m_pCurrentDoc = NULL;    
		CFrameWnd* pfWnd = (CFrameWnd*)this;   	
		m_pLeftView = (CGroupMenuView*)pfWnd->CreateView( &cx );
		m_pLeftView->SetScrollSizes( MM_TEXT, CSize(100, 100) );// , 	
		m_pLeftView->SetParent( this );
		m_pLeftView->InitView();	
	}
	// 
	{
		CCreateContext cx;   
		cx.m_pNewViewClass = RUNTIME_CLASS( CWorkView ) ;   
		cx.m_pCurrentDoc = NULL;    
		CFrameWnd* pfWnd = (CFrameWnd*)this;   	
		m_pRightView = (CWorkView*)pfWnd->CreateView( &cx );
		m_pRightView->SetScrollSizes( MM_TEXT, CSize(100, 100) );// , 	
		m_pRightView->SetParent( this );
	}

 
ビュー領域にListCtrlコントロールを追加する
void CListzzzView::OnInitialUpdate() 
{
	CListView::OnInitialUpdate();	
	CListCtrl& ctl=GetListCtrl();
	// TODO: Add your specialized code here and/or call the base class	
	// 
	DWORD dwStyle=::GetWindowLong(m_hWnd,GWL_STYLE);
    dwStyle|=LVS_REPORT|LVS_SHOWSELALWAYS|LVS_EDITLABELS;	
	::SetWindowLong(m_hWnd,GWL_STYLE,dwStyle);
	dwStyle=ctl.GetExtendedStyle();
	dwStyle|= LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT;
    // 
	ctl.SetExtendedStyle(dwStyle);	
	// 
	TCHAR tittle[3][10] = {_T(" "),_T(" "),_T(" ")};	
	LV_COLUMN lvcolumn;
	CRect rect;
	GetWindowRect(&rect);	
	// 
	for(int i=0;i<3;i++)
	{
		lvcolumn.mask =LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT 
			|LVCF_WIDTH|LVCF_ORDER;
		lvcolumn.fmt = LVCFMT_LEFT;
		lvcolumn.pszText = tittle[i];
		lvcolumn.iSubItem = i;
		lvcolumn.iOrder = i;
		lvcolumn.cx = rect.Height()/3;
		GetListCtrl().InsertColumn(i, &lvcolumn);
	}
}