首页 > 代码库 > 基于wince的MFC Tab Control控件的使用
基于wince的MFC Tab Control控件的使用
1,先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上。
再在对话框类中,声明一个CTabCtrl变量:
CTabCtrl m_tab;
变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句:
1 //{{AFX_DATA_MAP(CTABDlg)2 DDX_Control(pDX, IDC_TAB, m_tab); 3 //}}AFX_DATA_MAP
IDC_TAB是Tab Control控件的ID。
2,建立两个对话框程序,用来当做Tab Control控件的两个页。别忘了把Style改为Child,Border改为None。然后就可以在上面加其他控件了。
接着分别为这两个对话框建立两个类,比如CPage1和CPage2。
然后在对话框类头文件中,加入这两个对话框对象。同时增加一个变量int m_CurSelTab,用了表明是哪个Page即将被切换。
int m_CurSelTab;
CPage1 m_page1;
CPage2 m_page2;
CDialog* pDialog[2]; //用来保存对话框对象指针
在对话框类的初始化函数中需要把CPage1、CPage2和Tab Control关联起来,并保存页面地址,设置初始页面。
1 // TODO: Add extra initialization here 2 //初始化TAB 3 TCITEM tc1,tc2; 4 tc1.mask = TCIF_TEXT; 5 tc1.pszText = _T("第一页"); 6 tc2.mask = TCIF_TEXT; 7 tc2.pszText = _T("第二页"); 8 9 m_tab.InsertItem(0, &tc1);10 m_tab.InsertItem(1, &tc2); //到这里只是添加了两个tab页11 12 CRect rec;13 m_tab.GetClientRect(&rec);//获得TAB控件的坐标14 15 //定位选项卡页的位置,这里可以根据情况自己调节偏移量16 rec.bottom -= 2;17 rec.left += 1;18 rec.top += 27;19 rec.right -= 3;20 21 //创建子页面22 m_page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB));23 m_page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB));24 25 //将子页面移动到指定的位置26 m_page1.MoveWindow(&rec);27 m_page2.MoveWindow(&rec);28 29 //显示子页面30 m_page1.ShowWindow(SW_SHOW);31 m_page2.ShowWindow(SW_HIDE);
3,接下来,为Tab Control添加消息处理程序:
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CTabDlg::OnTcnSelchangeTab1)
1 // TODO: Add your control notification handler code here 2 switch(m_tab.GetCurSel()) 3 { 4 case 0: 5 m_page1.ShowWindow(SW_SHOW); 6 m_page2.ShowWindow(SW_HIDE); 7 break; 8 case 1: 9 m_page1.ShowWindow(SW_HIDE);10 m_page2.ShowWindow(SW_SHOW);11 break;12 default:13 break;14 }
搞定。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。