标签控件TabControl的使用
基于对话框的标签控件TabControl
---------------------------------------------
一、 基本属性
1. 创建一个新的MFC工程,基于 对话框
2. 选择“Tab控件”,选择属性栏,Style选择“Right Justify”,可以选择“Hot Track”,选择后鼠标经过会有特殊效果
3. 为 Tab控件 添加变量 m_tab
二、添加分页标签
1. 插入两个Dialog,分别添加两个类 CBookInfo 和 CBookDelete
2. 对刚才添加的两个对话框的ID改为 IDD_BOOKINFO_DIALOG, IDD_BOOKDELETE_DIALOG
3. 将新建的两个对话框头文件包含到主对话框(包含有TabControl控件)中,在主对话框中添加两个成员变量
1 CBookInfo m_BookInfo; 2 CBookDelete m_BookDelete;
4. 在主对话框的OnInitDialog函数中添加如下代码
1 m_tab.InsertItem(0, _T("图书信息"), 0); 2 m_tab.InsertItem(1, _T("删除图书信息"), 1); 3 4 m_BookInfo.Create(IDD_BOOKINFO_DIALOG, &m_tab); 5 m_BookDelete.Create(IDD_BOOKDELETE_DIALOG, &m_tab); 6 7 CRect clientRC; 8 m_tab.GetClientRect(clientRC); 9 clientRC.DeflateRect(2, 30, 2, 2); 10 m_BookInfo.MoveWindow(clientRC); 11 m_BookDelete.MoveWindow(clientRC); 12 m_BookInfo.ShowWindow(SW_SHOW); 13 m_tab.SetCurSel(0);
5. 为了鼠标选择Tab标签栏,页面能够发生变化,需要添加信息相应的方法,为TabControl控件添加相应触发函数,如下
1 void CTest_TabCtrlDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult) 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 int nCurSel = m_tab.GetCurSel(); 5 if (nCurSel == 0) { 6 m_BookInfo.ShowWindow(SW_SHOW); 7 m_BookDelete.ShowWindow(SW_HIDE); 8 } else { 9 m_BookDelete.ShowWindow(SW_SHOW); 10 m_BookInfo.ShowWindow(SW_HIDE); 11 } 12 *pResult = 0; 13 }