MFC控件篇之TabCtrl

[C++&MFC] MFC利用标签控件(Tab Control)实现分页 1.从工具箱拉一个Tab Control控件到对话框上 2.在在资源视图的Dialog中添加n个对话框窗体ID改为IDD_xxx1,,IDD_xxx2.等等 3.将新添加的n个对话框Border属性改为NONE,Style属性改为Child; 4.分别在这几个新建的对话框上右键添加类输入类名CDialgChild1,CDialgChild2等等 5.在类视图中选择主对话框对应的类,右键选择“添加”–> “添加变量”,输入变量类型“CDialgChild1”,变量名“cDialgChild1”;第二个类 阅读详情
Tab Ctr

Tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:

TCS_BUTTONS 使用按钮来表示页选择位置
TCS_MULTILINE 分行显示页选择位置
TCS_SINGLELINE 只使用一行显示页选择位置
在控件创建后必需向其中添加页面才可以使用,添加页面的函数为:
BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszItem为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用
BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageList );设置正确的ImageList)

此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。
int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。
BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。
void RemoveImage( int nImage );用于删除某页选择位置上的图标。

属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:

TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR
TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构:NMHDR

一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面的伪代码演示了如何使用属性页控件:

CParentWnd::OnCreate(...)
{
        m_tab.Create(...);
        m_tab.InsertItem(0,"Option 1");
        m_tab.InsertItem(1,"Option 2");
        Create a edit box as the m_tab's Child
        Create a static box as the m_tab's Child
        edit_box.ShowWindow(SW_SHOW); // edit box在属性页的第一页
        static_box.ShowWindow(SW_HIDE); // static box在属性页的第二页
}
void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{//处理页选择改变后的消息
        if(m_tab.GetCurSel()==0)
        {//根据当前页显示/隐藏不同的子窗口
                edit_box.ShowWindow(SW_SHOW);
                static_box.ShowWindow(SW_HIDE);
        }
        else
        {//
                edit_box.ShowWindow(SW_HIDE);
                static_box.ShowWindow(SW_SHOW);
        }
}
 
MFC中选项卡TabControl控件的用法 操作方法:在资源管理器里右键单击项目,为项目添加两个窗口资源,为了方便区分我们把其中一个窗口ID名改为IDD_DaGuai,另一个窗口ID名改为IDD_BaoHu。2. 打开对话框cpp文件,在初始化函数里为选项卡控件添加选项(这里以添加"打怪"和"这两个窗口最终是要显示在选项卡里的,所以边框是不能要的,在属性-外观-border设置为None。为了在显示时区分两个窗口,我们还要在两个窗口上做个记号(就在窗口的上下位置添。3. 接下来我们为"打怪"和"保护"选项关联对应的界面窗口。... 阅读详情

相关推荐

动态创建TabCtrl控件的用法

TabCtrl控件可以通过对话框方式直接采用控件静态添加,但是有时候需要去动态创建一个TabCtrl控件,本文是在CFormView上动态创建TabCtrl控件: 1、添加CTabCtrl类的对象: CTabCtrl m_tabCtrl; 2、为TabCtrl控件添加页面,本文创建两个对话框: CDialog1 m_page1; CDialog2 m_page2; 3、在资源视

xdhywj的专栏 1万+

【MFC】tab控件 仿任务管理器 枚举窗口和进程

创建一个基于对话框的MFC项目,给主对话框添加一个tab控件(设置关联变量 类型:CTabCtrl 名称:m_tab),添加两个子对话框(IDC_PAGE1和IDC_PAGE2),给子对话框添加一个list control控件(设置关联变量 类型:CListCtrl 名称:m_list),并将子对话框的边框属性设置为None,窗口样式设为child在资源视图界面右击对话框给IDC_PAGE1和IDC_PAGE2添加对话框类,类名分别为CPage1,CPage2。

m0_72895175的博客 1372

MFC之Tab Control控件简单使用

在MFC当中使用Tab Control控件切换不同的界面,使用起来会复杂一些,至少是比Qt中的Tab Widget复杂得多。我接下来会以一个MFC对话框应用程序为例子,说明Tab Control控件的简单使用方法。 1.1建立一个MFC对话框应用程序,在对话框中拖入Tab Control控件,效果如下: 1.2在对话框类中,声明一个CTabCtrl变量: CTabCtrl m_tab

m沉默 4万+

MFC标签页 Tab Control控件介绍

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

new9232的博客 4974

MFC单文档绘图(二)——TabCtrl和CPropertySheet

想到这个问题就头疼,

指尖流连 3715

MFC Tab控件的使用方法

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

m0_60352504的博客 2508

MFC TabCtrl使用

TabCtrl使用 0x1 新建子页面 插入三个对话框,ID分别为:IDD_PAGE_FILE、IDD_PAGE_NETWORK、IDD_PAGE_PROCESS 工具箱-【属性】-【Style】设置为【child】,【Border】设置为【None】 1、绑定类 每个对话框绑定一个对话框类 控件ID 绑定类名 作用 IDD_PAGE_FILE CPAGEFile 文件页 IDD_PAGE_NETWORK CPAGENet 网络页 IDD_PAGE_PROCESS CPAGEProc

17bdw的编程备份笔记 669

5步搞定ABB机器人RobotStudio与S7-1500PLC的Profinet通讯(附PLCSIM调试技巧)

本文详细介绍了如何利用RobotStudio与TIA Portal软件,结合PLCSIM Advanced仿真器,在零硬件条件下实现ABB机器人与西门子S7-1500 PLC之间的Profinet通讯虚拟调试。通过五个核心步骤,从环境搭建、网络配置、信号映射到联合仿真与高级调试,帮助工程师在项目前期高效验证逻辑、压缩现场调试周期,并掌握实用的PLCSIM调试技巧。

weixin_29188043的博客 505

MFC工作学习笔记(更新ing)

有时候遇到一些问题,当时抓耳挠腮半天找不到头绪,最后问题解决了,没记录,以后遇到了又抓耳挠腮(码农记性不好,不知是不是通病?)。故开此贴,聊以记录所遇问题及解决方法。 2013-5-29 TREECTRL控件NM_CLICK事件,获取当前选中ITEM时错误(只有第一次是正确,因为选中的第一条),发现GetSelectedItem获得的ITEM都是上一次选中的。想来这个NM_CLICK单

xjkstar的专栏 1297

【机器学习入门】1.4 吃透这些基本术语,才算真正入门

本文通过"挑西瓜"的生活案例,形象解释了机器学习的基本术语。样本对应单个西瓜,特征如色泽、根蒂等是观察维度,特征值是其具体表现,标签是西瓜的好坏判断。数据集是样本集合,特征向量是样本的数学表达,特征空间是所有可能的样本组合。文章强调数据集需划分为训练集、验证集和测试集,以评估模型的泛化能力。最后整理了术语对照表,并解答了常见问题。这些基础概念是理解机器学习的关键,建议读者重点掌握。

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 656

在昇腾910B服务上部署搭建适配PDF解析工具Mineru2.5开源项目

本文介绍了在昇腾910B服务器上部署开源PDF解析工具Mineru2.5的过程。首先从昇腾社区下载mindie镜像并运行容器,安装系统依赖。针对部署过程中遇到的多个报错问题(如torchvision与torch版本不匹配、昇腾软件栈与NumPy 2.0不兼容等),提供了具体解决方案和兼容版本。通过设置环境变量、安装指定版本的Python依赖包,成功部署Mineru项目并下载模型。最后运行测试,验证了在NPU设备上运行pipeline的可行性。整个过程详细记录了版本适配和错误处理方法,为类似部署场景提供了参考

一起加油吧 2164

MFC TabCtrl用法

基于对话框的MFC程序, 在主对话框中添加TabCtrl控件,CTabCtrl 类型的变量m_tabctrl; 插入3对话框,并设置属性style=Child,Border=None,创建三个对话框类CDialog1,CDialog2,CDialog3; 在主对话框中创建三个对话框类的全局对象 m_dg1,m_dg2,m_dg3; 在主对话框的初始化函数OnInitDialog中初始化; ...

TxyITxs的博客 842

Trae AI开发工具:大前端环境配置与避坑指南

大前端开发的第一步往往不是选框架,而是搭建一套可靠的工具链。IDE作为编码、调试与AI能力协同的载体,直接决定后续开发的顺畅度。传统编辑器需要手动拼装插件生态,而新一代AI开发工具将对话、代码生成与项目脚手架能力内置到编辑器底层,降低了环境准备的门槛。Trae基于VS Code内核,兼容其插件体系,同时提供Chat、Builder、内联对话三种AI交互模式,适合从VS Code迁移的开发者,也适合大前端新人快速上手。安装时需认准官方渠道,注意Node.js、Git版本联动,配置自动格式化与手动更新策略,并结

weixin_26833139的博客 282

005 MFC 选卡控件TabCtrl 动画控件Animate

#TabCtrlDemo 选项卡控件   拖拽控件      设置 ID IDC_TAB 设置变量名 m_tab   初始化控件 两个2 页面 1 BOOL CTabCtrlDemoDlg::OnInitDialog() 2 { 3 ......... 4 5 m_tab.InsertItem(0, L"Page 1"); 6 m...

afqz46812的博客 363

使用 Azure DevSecOps 和 AIOps 构建可扩展且安全的多区域金融科技 SaaS 平台

这家虚构的金融科技 SaaS 组织在 Microsoft Azure 上构建了一个现代化的多区域架构,以实现高可用性、主动安全性和简化的 DevSecOps 工作流。如果您是 DevOps 从业者、SRE 专业人士或致力于创建弹性、可扩展且安全的金融科技解决方案的技术领导者,您将从中获得可直接应用于您自身项目的见解和经验教训。与大多数快速扩张的金融科技公司一样,他们需要确保不间断的正常运行时间、坚不可摧的安全性以及快速的功能交付,以满足全球用户群的需求。即使是短暂的中断也会损害用户的信心和忠诚度。

介绍AWS Azure GCP devops Terraform 等技术 1298

YOLOv8改进 | Conv篇 | 利用YOLOv9的GELAN模块替换C2f结构(附轻量化版本 + 高效涨点版本 + 结构图)

本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的GELAN模块来改进YOLOv8中的C2f,GELAN融合了CSPNet和ELAN机制同时其中利用到了RepConv在获取更多有效特征的同时在推理时专用单分支结构从而不影响推理速度,同时本文的内容提供了两种版本一种是参数量更低涨点效果略微弱一些的版本(参数量V8n下降80w,计算量为6.1GFLOPs),另一种是参数量稍多一些但是效果要不参数量低的效果要好一些(均为我个人整理),提供两种版本是为了适配不同需求的读者,具体选择

Snu77的博客 7567

MFC TabCtrl 控件修改标签尺寸

注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width. 第一种方法 MFC,tabcontrol控件改变标签大小 - 优快云博客 MFC,tabcontrol控件改变标签大小_帆帆郑的博客-优快云博客_mfc tabcontrol大小 CSize size, size1; size.cx = 150; size.cy = 40; size1 = m_tab.SetItemSize(size); 第二种方法 MSDN:About Tab Controls.

phenixyf的专栏 1873

PyTorch深度学习实战(6)——神经网络性能优化技术

神经网络性能优化技术是指通过改进神经网络的结构、参数初始化、正则化和训练过程等方面来提高其性能和泛化能力的方法。优化技术的选择和调试需要根据具体问题进行,通过不断实验和调整,找到最适合网络的优化策略。本节首先训练了一个简单的全连接网络,然后在此基础上介绍了简单有效的神经网络性能提升技巧。

盼小辉丶的博客 1万+

MFC TabCtrl 控件简单使用

本文记录 MFC 中 TabCtrl 控件的简单使用,内容包括

yaoyuanyylyy的专栏 4267

OSG程序如何适配在无显卡的Ubuntu系统中

osg踩坑,希望遇到同样问题的人,可以尽快出坑,完美开发

大侠的后花园 459

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

MFC:TabCtrl使用教程

示例下载一、新建基于对话框的MFC程序TabCtrl_Demo添加一个TabCtrl控件,绑定变量:CTabCtrl m_tabCtrl。二、创建Tab标签对应的子对话框插入3个子对话框,并设置属性Style=Child,Border=None。 为插入的3个子对话框分别添加对话框类CDialog1,CDialog2,CDialog3。三、在主对话框中添加tab标签子对话框对象并包含对应的头文件#

Hisin Wang的专栏 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MFC TabCtrl 记录

MFC TabCtrl 记录 【MFC】TabCtrl控件如何调整标签和字体的大小 https://blog.youkuaiyun.com/sunriver2000/article/details/79887608 1、调整标签大小,代码如下 CSize size(200, 100), sizeReturn; sizeReturn = m_tbMain.SetItemSize(size); 2、调整标签字体,代码如下 BOOL bResult; bResult = m_Font.CreateFont(50, 20,

abc 352

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VS_MFC:TabCtrl使用教程

转载自:https://blog.youkuaiyun.com/qq_25241325/article/details/80254205 下载 一、新建基于对话框的MFC程序TabCtrl_Demo 添加一个TabCtrl控件,绑定变量:CTabCtrl m_tabCtrl。 二、创建Tab标签对应的子对话框 插入3个子对话框,并设置属性Style=Child,Border=None。 为插入的3个子对话框分别添加对话框类CDialog1,CDialog2,CDialog3。 三、在主对话框中添加tab标.

yytyu2017的博客 1240

MFC TabCtrl创建方法

一:首先vs2008建立一个MFC的工程,选择窗口为对话框。 二:在对话框上放置一个TabCtrl控件,并关联变量m_pTabCtrl 三:给工程添加两个页资源,ID号分别为IDD_FORMVIEW1,IDD_FORMVIEW2,可以自己手动在此添加需要的控件,然后右击选择添加类,继承与CDialog类,类名分别为CTabPage1,CTabPage2. 四:给对话框类分别添加CTabPag

gyzsky的专栏 963

MFC 常用控件

MFC 常用控件<br />http://www.cnblogs.com/youring2/archive/2010/08/18/1802903.html<br />    在MFC窗体控件中,常用的有Button、Static Box、Edit Box、Scroll Bar、Tree Ctrl、List Ctrl、Tab Ctrl等。通常在访问这些控件的时候,要先在建立类向导中添加一个变量,这个变量就是这个控件。类型为CTRL,值为该控件。<br />    然后就可以方便的访问这些控件了。<br /> 

nokianasty的专栏 937
上一篇: MFC控件篇之ListCtrl
下一篇: MFC控件篇之ToolBar
JamesXing
博客等级 码龄20年 30粉丝 3原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值