Tab控件的使用
1 插入Tab控件的数据项(标签)
CTabCtrl::InsertItem
2 以Tab控件为父窗口创建对话框
3 调整对话框大小
4 在Tab控件的SELCHANGE消息处理函数中,根据当前选项的索引设置对话框的显示状态。
新建一个基于对话框的工程,拖放一个Tab Control控件,Ctrl+W 为之绑定一个控件变量m_wndTabCtrl
插入两个对话框资源做为标签页面,注意设置它们的样式为:child 和 无边框
双击对话框资源为他们添加相关类,父类使用默认CDialog即可
这里类名为CDialog1 和 CDialog2
来到猪对话框类添加刚新建的对话框类的头文件,然后添加两个该类型的成员变量:
CDialog1 m_dlg1; CDialog2 m_dlg2;
然后来到主对话框的OnInitDialog函数中添加创建代码,注意两个对话框成员创建时要以主对话框为父类创建。
代码如下:
BOOL CTabCtrlDlg::OnInitDialog() { ............................................ // TODO: Add extra initialization here // 为Tab控件添加标签 m_wndTab.InsertItem (0, "Tab1"); m_wndTab.InsertItem (0, "Tab2"); // 以Tab控件为父窗口创建两个对话框 m_dlg1.Create (IDD_DIALOG1, this); m_dlg2.Create (IDD_DIALOG2, this); // 显示第一个对话框 m_dlg1.ShowWindow (SW_SHOW); // 调整对话框大小 // 获取Tab控件的大小 CRect rt; m_wndTab.GetClientRect (&rt); rt.top += 35; rt.left += 25; rt.right -= 1; rt.bottom -= 1; // 设置每个对话框的大小 m_dlg1.MoveWindow (&rt); m_dlg2.MoveWindow (&rt); // 显示第一个对话框 m_dlg1.ShowWindow (SW_SHOW); return TRUE; // return TRUE unless you set the focus to a control }
当然,为了能让便签页具备切换的功能,给Tab控件添加TCN_SELCHANGE消息处理
void CMFCTabCtrolDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here // 获取当前选择项 int nItem = m_wndTabCtrl.GetCurSel (); switch (nItem) { case 0: m_dlg1.ShowWindow (SW_SHOW); m_dlg2.ShowWindow (SW_HIDE); break; case 1: m_dlg2.ShowWindow (SW_SHOW); m_dlg1.ShowWindow (SW_HIDE); break; } *pResult = 0; }
MFC控件编程:Tab Control
时间: 2024-11-07 01:59:04