MFC对话框使用标签页控件

MFC对话框使用标签页控件

2014年6月16日10:08:39

1、使用VS2008创建一个MFC对话框。

2、在主对话框资源上添加一个标签页控件Tab Control,关联一个变量CTabCtrl m_myTablCtrl;

3、创建两个对话框资源,属性设置:

Border:    none   // 边界为空
Style:     Child  //子窗口

4、为这两个对话框关联两个对话框类。

5、在主对话框类添加两个子对话框对象成员。

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.        CDialog1 m_dlg1;  
  2. CDialog2 m_dlg2;  
  3.   
  4. CDialog * m_paDlg[2];  
  5. int m_nCurTab;  
6、在主对话框的OnInitDialog()函数中添加

//添加标签

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. m_myTablCtrl.InsertItem(0, _T("中国"));  
  2. lCtrl.InsertItem(1, _T("日本"));  
//创建子对话框窗口

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. m_dlg1.Create(IDD_DIALOG1,&m_myTablCtrl);  
  2. m_dlg2.Create(IDD_DIALOG2,&m_myTablCtrl);  
  3.   
  4. m_paDlg[0] = &m_dlg1;  
  5. m_paDlg[1] = &m_dlg2;  

//设置子对话框窗口的位置

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. CRect rc;     
  2. m_myTablCtrl.GetClientRect(&rc);  
  3. rc.top  += 23;    
  4. rc.left  += 3;  
  5. rc.bottom -= 3;     
  6. rc.right -= 3;  
  7.   
  8. m_dlg1.MoveWindow(&rc);  
  9. m_dlg2.MoveWindow(&rc);  
//显示一个子对话框窗口
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. m_dlg1.ShowWindow(SW_SHOW);     
  2. m_myTablCtrl.SetCurSel(0);  
7、添加标签页控件的切换标签响应函数

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. void CpageDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)  
  2. {  
  3.     // TODO: 在此添加控件通知处理程序代码  
  4.     *pResult = 0;  
  5.   
  6.     int nNewSel = m_myTablCtrl.GetCurSel();  
  7.   
  8.     if (m_nCurTab != nNewSel)    
  9.   
  10.     {    
  11.   
  12.         m_paDlg[m_nCurTab]->ShowWindow(SW_HIDE);     
  13.   
  14.         m_paDlg[nNewSel]->ShowWindow(SW_SHOW);  
  15.   
  16.         m_nCurTab = nNewSel;    
  17.   
  18.     }     
  19.   
  20.     return;  
  21. }  

8、在子对话框窗口上添加编辑框,并关联一个对象。在主对话框窗口上添加一个按钮,并添加消息响应函数。

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. void CpageDlg::OnBnClickedButton1()  
  2. {  
  3.     // TODO: 在此添加控件通知处理程序代码  
  4.     CString str;  
  5.     m_dlg1.m_edit.GetWindowText(str);  
  6.     str+=_T("中aA1");  
  7.     m_dlg1.m_edit.SetWindowText(str);  
  8. }  


总结:

标签页控件主要是让多个界面切换显示。界面设置,按原有的一样。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值