【MFC】给对话框中添加tab控件&list控件

为了在对话框中加一个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;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值