900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MFC中Tab Control控件的使用

MFC中Tab Control控件的使用

时间:2024-04-02 10:59:43

相关推荐

MFC中Tab Control控件的使用

一、创建TabControl控件主要分为以下步骤

1.1将TabControl控件拖入基本对话框中,并且创建一个控件变量m_tab

1.2创建两个子对话框,ID分别改为IDD_DIALOG_PAGE1和IDD_DIALOG_PAGE2。

1.3把两个子对话框的属性Style改为Child,Border改为None。

1.4为两个子对话框分别建立两个类,类名称分别为CTabPage1和CTabPage2。注意:子对话框中的控件的初始化要在新建类中初始化,但子对话框的类中没有初始化函数,需要自己添加,切换到类视图,到类属性中添加init函数。

1.5将两个子对话框的类头文件TabPage1.h和TabPage2.h都加入主对话框头文件Test11Dlg.h中,方便主对话框Test11Dlg.h和Test11Dlg.cpp调用这两个对话框的类。

1.6在主对话框头文件Test11Dlg.h中,创建两个子对话框类的对象,分别为CTabPage1 m_page1;和CTabPage2 m_page2;

1.7然后在OnInitDialog()中添加如下代码:

// TODO: 在此添加额外的初始化代码CRect tabRect; // 标签控件客户区的位置和大小 m_tab.InsertItem(0, _T("xxx"));// 插入第一个标签“xxx” m_tab.InsertItem(1, _T("xxx")); // 插入第二个标签“xxx” m_page1.Create(IDD_page1_DIALOG, &m_tab); // 创建第一个标签页 m_page2.Create(IDD_page2_DIALOG, &m_tab); // 创建第二个标签页 m_tab.GetClientRect(&tabRect); // 获取标签控件客户区Rect // 调整tabRect,使其覆盖范围适合放置标签页 tabRect.left += 1;tabRect.right -= 1;tabRect.top += 25;tabRect.bottom -= 1;// 根据调整好的tabRect放置page1子对话框,并设置为显示 page1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);// 根据调整好的tabRect放置page2子对话框,并设置为隐藏 page2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

1.8双击TanControl控件,然后在弹出的函数OnTcnSelchangeTab1中添加如下代码:

// TODO: 在此添加控件通知处理程序代码CRect tabRect; // 标签控件客户区的Rect // 获取标签控件客户区Rect,并对其调整,以适合放置标签页 m_tab.GetClientRect(&tabRect);tabRect.left += 1;tabRect.right -= 1;tabRect.top += 25;tabRect.bottom -= 1;switch (m_tab.GetCurSel()){case 0:page1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);page2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);break;case 1:page1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);page2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);break;default:break;}*pResult = 0;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。