为了在对话框中加一个tab控件,每一个tab标签页下都有一个列表
1.在主对话框中添加tab控件,并关联变量m_tab
2.创建一个新的对话框,设置类CXXXX
3.将新对话框的Border选项设置为None,Style选项设置为Child
4.在新对话框中添加list控件,View选项设置为report,并关联变量m_list,
5.在XXX.cpp中重写OnInitDialog()函数
BOOL CStatisticList::OnInitDialog()
{
CDialogEx::OnInitDialog();
CRect rect;
// 获取编程语言列表视图控件的位置和大小
m_list.GetClientRect(&rect);
// 为列表视图控件添加全行选中和栅格风格
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
// 为列表视图控件添加n列
m_list.InsertColumn(0, _T("第一列第一行"), LVCFMT_LEFT, rect.Width()/2, 0);
m_list.InsertColumn(1, _T("第一列第二行"), LVCFMT_LEFT, rect.Width()/2, 1);
//添加数据,可以在初始化的时候也可以在需要的时候调用
CString str;
str.Format(_T("数据内容');
m_list.SetItemText(0, 1, str); //给第一行的第二列添加数据
return TRUE;
}
6.在主对话框的头文件中声明列表变量,代表标签页包含的对话框的变量
CXXX m_XXX_list;
CYYY m_YYY_list;
7.初始化tab控件,在OnInitDialog()函数中添加代码
//加载tab列表
//获得IDC_TABTEST客户区大小
CRect rs;
m_tab.GetClientRect(&rs);
//调整子对话框在父窗口中的位置
rs.top+=35;
rs.bottom-=0;
rs.left+=1;
rs.right-=1;
//添加选项卡
m_tab.InsertItem(0,_T("第一个选项卡"));
//设置IDC_TAB1为父窗口
m_XXX_list.Create(IDD_LIST1,GetDlgItem(IDC_TABLIST));
//设置第二个选项卡,步骤和前面一样
m_tab.InsertItem(1,_T("第二个选项卡"));
m_XXX_list.Create(IDD_LIST2,GetDlgItem(IDC_TABLIST)); //设置IDC_TAB1为父窗口
//设置子对话框尺寸并移动到指定位置
m_XXX_list.MoveWindow(&rs);
m_YYY_list.MoveWindow(&rs);
//分别设置隐藏和显示
m_XXX_list.ShowWindow(true);
m_YYY_list.ShowWindow(false);
//----------------------------------------------------------------
8.最后点击tab控件->控件事件->TCN_SELCHANGE,添加标签页切换后的显示
void CADSB_SimData_RcDlg::OnTcnSelchangeTablist(NMHDR *pNMHDR, LRESULT *pResult)
{
// 获取显示的标签页
switch(m_tab.GetCurSel())
{
case 0:
m_XXX_list.ShowWindow(true);
m_YYY_list.ShowWindow(false);
break;
case 1:
m_XXX_list.ShowWindow(false);
m_YYY_list.ShowWindow(true);
break;
}
*pResult = 0;
}