首页 > 编程知识 正文

我的世界如何添加标签,抖音如何添加标签

时间:2023-05-03 08:33:54 阅读:230451 作者:1031

首先,新建一个基于对话框的mfc工程,添加dialog资源,IDD_TEST1,IDD_TEST2, IDD_TEST3,分别将属性border设置为none,style设置为child,并分别添加到类中CTest1,CTest2,CTest3。
其次,在CxxxDlg的头文件中,引用CTest1,CTest2,CTest3的头文件。并在类中添加

public: CTest1 t1;CTest2 t2;CTest3 t3;

然后,在mfc中IDD_MY_DIALOG资源中添加标签页控件,并将其添加到变量m_tab,并添加事件TCN_SELCHANGE。
我们在头文件可以看到以下代码

afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);CTabCtrl m_tab;

最后,在在OnInitDialog函数中添加代码

CRect tabRect; // 标签控件客户区的Rect // 获取标签控件客户区Rect,并对其调整,以适合放置标签页 m_tab.GetClientRect(&tabRect); tabRect.left += 1; tabRect.right -= 1; tabRect.top += 25; tabRect.bottom -= 1; m_tab.InsertItem(0, _T("测试1")); // 插入第一个标签m_tab.InsertItem(1, _T("测试2")); // 插入第二个标签m_tab.InsertItem(2,_T("测试3")); //第三个标签t1.Create(IDD_TEST1, &m_tab); // 创建第一个标签页 t2.Create(IDD_TEST2, &m_tab); // 创建第二个标签页 t3.Create(IDD_TEST3, &m_tab);//创建第三个标签页// 根据调整好的tabRect放置t1子对话框,并设置为显示 t1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW); // 根据调整好的tabRect放置t2子对话框,并设置为隐藏 t2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); // 根据调整好的tabRect放置t3子对话框,并设置为隐藏 t3.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

在在OnTcnSelchangeTab1函数中添加以下代码

CRect tabRect; // 标签控件客户区的Rect // 获取标签控件客户区Rect,并对其调整,以适合放置标签页 m_tab.GetClientRect(&tabRect); tabRect.left += 1; tabRect.right -= 1; tabRect.top += 25; tabRect.bottom -= 1; switch (m_tab.GetCurSel()) //返回组合框中列表框中当前选中的项的下标。如果没有选中项,则返回CB_ERR。 { // 如果标签控件当前选择标签为“测试1”case 0: t1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW); t2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); t3.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); break; // 如果标签控件当前选择标签为“测试2”case 1: t1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); t2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW); t3.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); break; // 如果标签控件当前选择标签为“测试3”case 2:t1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); t2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); t3.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW); break;default: break; }

这样,我们就得到如下效果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。