1. 重载CTabView类,实现CConfBrdView。class CConfBrdView : public CTabView2. 添加选项卡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() //重载{CListCtrl& listCtrl = GetListCtrl(); //获取列表控件LONG lStyle;lStyle = GetWindowLong(listCtrl.m_hWnd, GWL_STYLE); //获取当前窗口stylelStyle &= ~LVS_TYPEMASK; //清除显示方式位lStyle |= LVS_REPORT; //设置styleSetWindowLong(listCtrl.m_hWnd, GWL_STYLE, lStyle); //设置styleDWORD 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);
MFC单文档框架编程(三): CTabView的使用
关注
打赏