1. 重载CTabView类,实现CConfBrdView。


class CConfBrdView : public CTabView



2. 添加选项卡


void CConfBrdView::OnInitialUpdate()        //重载OnInitialUpdate函数


{


CTabView::OnInitialUpdate();



// TODO: 在此添加专用代码和/或调用基类


//创建选项卡


AddView(RUNTIME_CLASS(CBCAudioView), _T("音频"), 103);                        //该选项卡为一个CBCAudioView试图


        ....



this -> GetTabControl().ModifyTabStyle( CMFCTabCtrl::STYLE_3D_VS2005);    //风格


this -> GetTabControl().SetTabBorderSize( 2 ); //边框大小


this -> GetTabControl().HideSingleTab( TRUE );   //单个Tab时候不显示Tab标签


this -> GetTabControl().EnableTabSwap( FALSE );    //禁止拖动 


}



2. CBCAudioView视图


CBCAudioView视图继承自CListView, 用以显示一个表格. (class CBCAudioView : public CListView;)


视图界面的初始化:


BOOL CBCAudioView::PreCreateWindow(CREATESTRUCT& cs)    //重载


{


// TODO: 在此添加专用代码和/或调用基类


cs.style |=  LVS_SHOWSELALWAYS | LVS_REPORT;            //设置report风格


return CListView::PreCreateWindow(cs);


}


void CBCAudioView::OnInitialUpdate()    //重载


{


//获取列表控件


LONG lStyle;


lStyle = GetWindowLong(listCtrl.m_hWnd, GWL_STYLE); //获取当前窗口style


lStyle &= ~LVS_TYPEMASK; //清除显示方式位


lStyle |= LVS_REPORT; //设置style


SetWindowLong(listCtrl.m_hWnd, GWL_STYLE, lStyle); //设置style



DWORD dwStyle = listCtrl.GetExtendedStyle();


dwStyle |= LVS_EX_FULLROWSELECT; //选中某行使整行高亮(只适用与report风格的listctrl)


dwStyle |= LVS_EX_GRIDLINES; //网格线(只适用与report风格的listctrl)


//dwStyle |= LVS_EX_CHECKBOXES; //item前生成checkbox控件


listCtrl.SetExtendedStyle(dwStyle); //设置扩展风格



CRect rect;


GetClientRect(rect); 



        //添加两列表头


LV_COLUMN lvcolumn;


lvcolumn.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;


lvcolumn.fmt=LVCFMT_LEFT;


lvcolumn.cx=rect.Width()/2;


lvcolumn.iSubItem=0;


lvcolumn.pszText=_T("配置项");


listCtrl.InsertColumn(0,&lvcolumn);



lvcolumn.iSubItem=1;


lvcolumn.pszText=_T("值");


listCtrl.InsertColumn(1,&lvcolumn);


}



3. 重载OnUpdate函数显示数据


CView *pView = GetActiveView();


if (!pView->IsKindOf(RUNTIME_CLASS( CBCAudioView )))


{


return;


}


CListCtrl& listCtrl =  ((CBCDevInfoView *)pView)->GetListCtrl();// 获取列表的控件

listCtrl.SetItemText(0, 1, string);