您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 4浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MFC单文档框架编程(三): CTabView的使用

phymat.nico 发布时间:2015-01-27 08:47:05 ,浏览量:4


 
 
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()    //重载
{
        CListCtrl& listCtrl = GetListCtrl(); //获取列表控件
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);
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0431s