MFC标签页 Tab Control控件介绍
创始人
2024-06-01 23:24:04
0

简介

  • 标签页Tab Control在MFC界面开发中的使用频率还是非常高的,本文章就主要介绍下该控件的使用。

创建项目

  • 选择文件->新建->新建项目。创建一个MFC工程。选择基于对话框,点击完成。
    在这里插入图片描述
    在这里插入图片描述

Tab Control使用

  • 先在资源视图界面,工具箱中选择 Tab Control,放置到界面上。
    在这里插入图片描述
  • 然后给Tab Control控件添加一个变量
    在这里插入图片描述
  • 接下来需要添加子对话框,用于设置到标签页上。
  • 资源视图界面,选择Dialog,插入dialog
    在这里插入图片描述
    在这里插入图片描述
  • 添加对话框后,右击选择属性,将Border设置为None,表示不需要边框,Style设置为Child,表示以子控件显示。
    在这里插入图片描述
  • 用同样的方法,我们添加三个对话框
    在这里插入图片描述
  • 接下来分别为三个对话框添加类
  • 右击对话框,选择添加类
    在这里插入图片描述
  • 添加完成后,在类视图中可以看到添加的类
    在这里插入图片描述
  • 然后在主界面对应的头文件中包含我们添加的这三个子对话框的头文件
    在这里插入图片描述
  • 并添加三个变量和一个CDialog*类型的数组
    在这里插入图片描述
  • 为了便于区分,我们在三个对话框上放入不同控件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 然后在初始化代码中给标签页添加对话框
    在这里插入图片描述
  •   	//获取tab control位置和大小CRect tabRect, itemRect;int nX, nY, nXc, nYc;m_tab.GetClientRect(&tabRect);m_tab.GetItemRect(0, &itemRect);nX = itemRect.left;nY = itemRect.bottom + 1;nXc = tabRect.right - itemRect.left - 2;nYc = tabRect.bottom - nY - 2;// 添加对话框1m_tab.InsertItem(0, TEXT("对话框1"));m_sub1.Create(IDD_DIALOG_SUB1, &m_tab);m_dlgSum[0] = &m_sub1;m_dlgSum[0]->ShowWindow(SW_SHOW);//设置对话框1的显示位置m_dlgSum[0]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);//添加对话框2m_tab.InsertItem(1, TEXT("对话框2"));m_sub2.Create(IDD_DIALOG_SUB2, &m_tab);m_dlgSum[1] = &m_sub2;m_dlgSum[1]->ShowWindow(SW_HIDE);m_dlgSum[1]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);//添加对话框3m_tab.InsertItem(2, TEXT("对话框3"));m_sub3.Create(IDD_DIALOG_SUB3, &m_tab);m_dlgSum[2] = &m_sub3;m_dlgSum[2]->ShowWindow(SW_HIDE);m_dlgSum[2]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);
    
  • 运行后看下效果
    在这里插入图片描述
  • 这个时候我们点击标签页,还没办法切换,显示的还是第一个对话框。需要再添加一个选项更改事件
  • 右击标签页控件,选择控件事件,添加一个TCN_SELCHANGE
    在这里插入图片描述
  • 在标签页更改事件函数中,去设置要显示的对应的对话框
    在这里插入图片描述
  •   	//获取当前选择索引int index = m_tab.GetCurSel();//根据索引显示对应的界面if (index == 0) {m_dlgSum[0]->ShowWindow(SW_SHOW);m_dlgSum[1]->ShowWindow(SW_HIDE);m_dlgSum[2]->ShowWindow(SW_HIDE);}else if (index == 1) {m_dlgSum[0]->ShowWindow(SW_HIDE);m_dlgSum[1]->ShowWindow(SW_SHOW);m_dlgSum[2]->ShowWindow(SW_HIDE);}else if (index == 2) {m_dlgSum[0]->ShowWindow(SW_HIDE);m_dlgSum[1]->ShowWindow(SW_HIDE);m_dlgSum[2]->ShowWindow(SW_SHOW);} 
    
  • 再运行程序,选择不同的标签,就显示对应标签的对话框
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...