MFC入门学习之控件(3)标签控件Tab Control的添加和使用

【MFC】Tab Control控件使用 本文简单整理了初学者在学习MFC的Tab Control控件时的步骤,并附上在此过程中我遇到的一些问题,希望对你有所帮助。 阅读详情

向对话框中拖入一个tab control控件,调整好大小以适合要求


对于控件类,我们需要定义一个控件类的对象,通过对象的成员方法来将需要添加的内容显示在对话框中,并通过一定的逻辑来控制标签项的显示顺序。

创建一个新的dialog,并且在属性中进行如下设置:


在头文件中添加

CTabCtrlm_Tab;

CVMC_Packagem_Package;

CVMC_NandAccessm_NandAccess;

进入要添加控件的对话框

首先需要在如下函数中添加linked代码,否则运行时报错。

 

voidCVmc_Dld::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

 

//linked

DDX_Control(pDX, IDC_TAB_DLD, m_tab);

}

添加如下代码完成标签的显示,

CRect tabRect;//size and position of tabCtrl in client area

 

m_Tab.InsertItem(0, _T("Package"));//Inser PackageDialog into Item

m_Tab.InsertItem(1, _T("NAND"));//Insert NANDDialog into Item

 

//link dialog to tab control

m_Package.Create(IDD_DIALOG_PACKAGE, &m_Tab);

m_NandAccess.Create(IDD_DIALOG_NAND, &m_Tab);

 

m_Tab.GetClientRect(&tabRect);//get client rect

 

//modify tabRect, adapt to main dialog

tabRect.left += 1;

tabRect.right -= 1;

tabRect.bottom -= 1;

tabRect.top += 20;

 

//set Packge display default

m_Package.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);

m_NandAccess.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

这样我们只是设置了再默认情况下的标签显示,但是当真正在程序运行时,便签内的内容并不能够正常显示,因此需要对事件的处理事件编程。


在此处选择当选择项发生改变时的消息处理,


当然也可以手动的编写代码完成,需要编辑

BEGIN_MESSAGE_MAP(CVMC_MainDialog,CDialogEx)

ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_ALLDIALOG,&CVMC_MainDialog::OnTcnSelchangeTabAlldialog)

END_MESSAGE_MAP()

并添加

voidCVMC_MainDialog::OnTcnSelchangeTabAlldialog(NMHDR *pNMHDR, LRESULT *pResult)

{

// TODO: Add your control notification handler code here

*pResult = 0;

 

}

函数的声明,现在我们就需要编辑上面的方法完成我们需要的动作。具体代码的编写如下:

 

//getcurrent selected tab and change it to show

switch(m_Tab.GetCurSel())

{

//change the show window as you want

case0:

//set Package show

m_Package.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);

//set others hide

m_NandAccess.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

m_SpiNorFlash.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

break;

case1:

//set NAND Flash show

m_NandAccess.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);

//set others hide

m_Package.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

m_SpiNorFlash.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

break;

case2:

//set SPI-NOR Flash show

m_SpiNorFlash.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);

//set others hide

m_Package.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

m_NandAccess.SetWindowPos(NULL, tabRect.left, tabRect.top,tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

break;

default:

break;

}

MFC开发-TabControl控件使用 MFC开发-TabControl控件使用; 阅读详情

相关推荐

MFC中选项卡TabControl控件的用法

操作方法:在资源管理器里右键单击项目,为项目添加两个窗口资源,为了方便区分我们把其中一个窗口ID名改为IDD_DaGuai,另一个窗口ID名改为IDD_BaoHu。2. 打开对话框cpp文件,在初始化函数里为选项卡控件添加选项(这里以添加"打怪"和"这两个窗口最终是要显示在选项卡里的,所以边框是不能要的,在属性-外观-border设置为None。为了在显示时区分两个窗口,我们还要在两个窗口上做个记号(就在窗口的上下位置添。3. 接下来我们为"打怪"和"保护"选项关联对应的界面窗口。...

weixin_42655748的博客 6889

MFC标签页 Tab Control控件介绍

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

new9232的博客 4974

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和CTa...

algiz_kk的博客 2906

[MFC]Tab Control控件

TabControl的使用 在主对话框窗口添加Tab Control控件 调整好Tab Control控件的位置,鼠标右键添加变量并为控件添加控件变量m_tab 双击子对话框界面为其添加MFC类,基类为CDialog 在资源视图下添加两个对话框,分别修改其属性,Border改为None,Style改为child 在主对话框头文件中添加这两个对话框的头文件,并在主对话框类中添加 #pragma once #include "TabControl1.h" #include "TabControl2.h

qq_43630810的博客 2722

MFC Tab控件的使用方法

新建一个mfc项目a 在资源视图中,对a.rc右键,添加资源,选择Dialog,新建

m0_60352504的博客 2508

win32对话框tab control控件使用demo

vc6 如鹏网win32对话框向导工程 tab control控件使用demo

MFC---标签控件Tab Control(常用控件)

标签控件也比较常见。它可以把多个页面集成到一个窗口中,每个页面对应一个标签,用户点击某个标签时,它对应的页面就会显示。下图是Windows系统配置中标签控件的例子:使用标签控件我们可以同时加载多个有关联的页面,用户只需点击标签即可实现页面切换,方便灵活的进行操作。每个标签除了可以显示标签文本,还可以显示图标。标签控件相当于是一个页面的容器,可以容纳多个对话框,而且一般也只容纳对话框,所以我们不能直接在标签控件上添加其他控件,必须先将其他控件放到对话框中,再将对话框添加到标签控件中。

Frank---7的博客 3312

腾讯云CodeBuddy+微信小程序:5分钟开发番茄小闹钟

番茄钟是一种简单的时间管理方法。这个方法很简单:你专注工作25分钟,然后休息5分钟。这样可以让你更专心,不容易分心,还能防止过度疲劳。 很多人用番茄钟来提高工作效率,因为它能帮助你更好地管理时间。不过,市面上的一些免费番茄钟应用常常会有广告弹出来,影响使用体验。这就是为什么我们要开发一个没有广告的番茄钟小程序,让用户可以专心工作,不被打扰。

2201_75366661的博客 1689

VS2013/MFC编程入门之三十一(常用控件:标签控件Tab Control )

前面两节讲了树形控件Tree Control,本节开始讲解标签控件Tab Control,也可以称为选项卡控件。        标签控件简介        标签控件也比较常见。它可以把多个页面集成到一个窗口中,每个页面对应一个标签,用户点击某个标签时,它对应的页面就会显示。        使用标签控件我们可以同时加载多个有关联的页面,用户只需点击标签即可实现页面切换,方便灵活的进

赵小咖的博客 1万+

ISO26262 功能安全各个阶段测试要求

1. 开发过程说明 系统层面:包括软硬件集成测试、系统集成测试以及整车测试。 硬件层面:包括硬件集成与测试。 软件层面:单元测试、集成测试。 2. 功能安全总体要求 2.1 各项指标 2.2 诊断覆盖度举例 针对一个信号举例说明: 3. 功能安全测试要求 3.1 测试计划 核心内容应包括, 测试对象:需要测试的对象描述,以及测试的范围描...

AgingMoon的博客 1万+

Win11下高效管理JDK1.8与JDK17双环境的实战指南

本文提供了一份在Windows 11系统上高效管理JDK 1.8与JDK 17双环境的实战指南。文章详细讲解了如何实现双版本切换,包括如何干净安装两个JDK、通过巧妙配置环境变量实现命令行一键切换,以及在不同IDE和构建工具中为项目独立配置JDK版本,旨在帮助Java开发者彻底解决版本冲突问题,提升开发效率。

ipfs8storage的博客 543

MFC Tab Control 多层 嵌套 子对话框

以下教程需要先在鸡啄米的MFC教程中学习Tab Control的基本知识,才可学习。 资源网址:http://download.youkuaiyun.com/detail/linyijiong/97932401.创建一个对话框,命名为TabControl,删除原有的空间,加入Tab控件,并为其关联变量m_tab1。2.创建第一层子第一个对话框child11.dlg,双击其,生成Dlg类并命名为CChild11

linyijiong的博客 3950

Delta并联机械手-Codesys实现以及正解逆解研究

由于Codesys的Robotics模块有Delta并联机械手的运动模型,因此借助Codesys的机械手运动模型,研究自己的正解逆解算法。

weixin_42386991的博客 5566

标签控件Tab Control以及CTabCtrl类

标签控件简介        标签控件也比较常见。它可以把多个页面集成到一个窗口中,每个页面对应一个标签,用户点击某个标签时,它对应的页面就会显示。下图是Windows系统配置中标签控件的例子:          使用标签控件我们可以同时加载多个有关联的页面,用户只需点击标签即可实现页面切换,方便灵活的进行操作。每个标签除了可以显示标签文本,还可以显示图标。        标

gateway6143的专栏 2565

超简单的视频换脸,效果相当不错!完全白嫖的技术,来自ComfyUI 官方客户端一键搞定!手把手教会你如何下载安装部署,而且教你如何使用。

如果你电脑上没有安装Visual Studio的C++桌面开发组件,还有Windows应用SDK C++模板,那么你需要自行去下载安装下【安装后默认界面会自动识别系统语言,当然如果你是中文繁体用户,那么你可以在 ComfyUI 的管理器里下载。】并把它放入根目录-models-insightface文件夹内 , 同时下载视频换脸工作流 【分享手把手教你视频换脸,本地部署,轻轻松松当上“电影主角”】,否则insightface无法被正常载入。) 这是换脸必备的工具 ,安装后重启;

TianLeung的博客 2858

手把手教你学Simulink实例:基于Simulink的超级电容器充放电仿真

超级电容器(Supercapacitor)是一种高容量电容器,具有快速充放电能力、长寿命和高功率密度等优点。它在能量存储系统、电动汽车、不间断电源(UPS)等领域有广泛应用。为了更好地理解和设计超级电容器的应用系统,通常需要进行详细的仿真分析。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证超级电容器充放电系统的控制策略。本教程将详细介绍如何使用 Simulink 进行超级电容器充放电的仿真实例。通过本教程,我们详细介绍了如何使用 Simulink 进行超级电容器充放电的仿真实例。

MHD0815的博客 581

mfc 中 Tab Control 控件的使用

之前对mfc的了解也仅限于提到它时不会联想到肯德基而已,前些天要用mfc做一个管理系统,便可怜兮兮的到处去查资料,真的挺不容易。现在有点时间,就先把Tab Control控件的使用整理出来,方便后来者,也方便以后的自己。   使用示例: 一,准备工作:   建立基于对话框的mfc工程TabCtrl;并选中对话框的Title Bar 和 System Menu属性。 删除“确定”和“取消”

阿哲的博客 1402

CloudCompare源码分析之CCCoreLib模块:ICP算法(阅读经典)

CloudCompare源码分析之CCCoreLib模块:ICP算法(阅读经典)

dayuhaitang1的博客 2551

MFC控件使用方法(十六、标签控件(Tab Control))

十六、标签控件(Tab Control) 作用: 在同一个区域显示不同的Dialog(对话框) 消息映射函数: NM_CLICK :指示用户已在控件内单击了左键 NM_RCLICK : 指示用户已在控件中单击了鼠标右键 NM_RELEASDCHPYURE :将鼠标捕获释放通知父级 TCN_SELCHANGE : 指示选定已从一项变为另一项 TCN_SELCHANGING : 指示选定向即将从一项变为另一项 属性: TCS_BUTTON 修改标签的外观,使它们看起来像按钮一样。 TCS_FIXEDWI

qq_43812868的博客 2690

DeepSmote:一种深度SMOTE方法

DeepSmote 一种全新的将深度学习与Smote相结合的过采样方法! 目前在许多领域已经被使用,值得大家关注学习!

走在深度学习前沿的小宋 1447

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VS2010-MFC(常用控件:标签控件Tab Control 下)

转自:http://www.jizhuomi.com/software/207.html 上一节讲了标签控件知识的上半部分,本节继续讲下半部分。 标签控件的创建 MFC为标签控件的操作提供了CTabCtrl类。 与之前的控件类似,创建标签控件可以在对话框模板中直接拖入Tab Control,也可以使用CTabCtrl类的...

dgc70876的博客 433

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Tab Control控件使用的例子

1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl 2、创建两个新的对话框资源,其属性作如下修改: Border:none //边界为空,这样它就没了标题栏 Style :Child // 这样这个模板就可以当作另一个

1140

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

关于Tab control

1、标签控制的建立方法             CTabCtrl&tabCtrl           建立标签控制对象结构             Create                                 建立标签控制并绑定对象             标签控制CTabCtrl::Create的调用格式如下:             BOOL   Create(

水上漂的专栏 2682

怎么向tab control中加其它控件(如文本框等)

1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab   Control   控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl     2、创建两个新的对话框资源,其属性作如下修改:     Border:none   //边界为空,这样它就没了标题栏     Style   :Chi

Leo 3781

MFC之Tab Control标签控件

MFC 一.简介 这篇说一下Tab Control标签控件,我们以实际的例子进行说明,实现的功能就是点击不同的标签来切换到不同的画面 二.操作 在窗口界面上鼠标右键标签控件,选择添加变量 m_tab, 定义操作各界面的类变量,这里我们添加3个标签页,3个标签页对应三个窗口界面,注意添加个界面头文件(在含有标签页窗口的.h文件中) CT1Dlg m_1Dlg; //界面1 CT2Dlg m_2Dlg; //界面2 CT3Dlg m_3Dlg; //界面3 设置表头

weixin_45631738的博客 1339
上一篇: MFC入门学习之控件(2)创建一个对话框窗口并在运行时显示
下一篇: MFC入门学习之控件(4)标签控件List Control的添加和使用(上)
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值