转自:http://www.jizhuomi.com/software/205.html

前面两节讲了树形控件Tree Control,本节开始讲解标签控件Tab Control,也可以称为选项卡控件。

标签控件简介

标签控件也比较常见。它可以把多个页面集成到一个窗口中,每个页面对应一个标签,用户点击某个标签时,它对应的页面就会显示。下图是Windows系统配置中标签控件的例子:

使用标签控件我们可以同时加载多个有关联的页面,用户只需点击标签即可实现页面切换,方便灵活的进行操作。每个标签除了可以显示标签文本,还可以显示图标。

标签控件相当于是一个页面的容器,可以容纳多个对话框,而且一般也只容纳对话框,所以我们不能直接在标签控件上添加其他控件,必须先将其他控件放到对话框中,再将对话框添加到标签控件中。最终我们点击标签切换页面时,切换的不是控件的组合,而是对话框。

标签控件的通知消息

在对标签控件进行一些操作,比如点击标签时,标签控件也会向父窗口发送一些通知消息。我们可以为这些通知消息添加处理函数,实现各种功能。标签控件的主要通知消息及含义如下所示:

TCN_SELCHANGE:通知父窗口控件的标签选择项已经改变
       TCN_SELCHANGING 通知父窗口控件的标签选择项正在改变
       TCN_KEYDOWN:通知父窗口在控件范围内键盘被按下
       TCN_GETOBJECT:具有TCS_EX_REGISTERDROP扩展特性并且对象被拖动时的通知消息
       TCN_FOCUSCHANGE:通知父窗口控件的按钮聚焦已经改变
       NM_CLICK:通知父窗口用户在控件区域范围内点击了鼠标左键
       NM_RCLICK:通知父窗口用户在控件区域范围内点击了鼠标右键
       NM_RELEASEDCAPTURE:通知父窗口在控件区域范围内释放鼠标捕获消息

标签控件的相关结构体

标签控件在使用中也有一些相关的结构体经常用到,主要以下几个:

1. TCITEMHEADER结构体

该结构体用来指定或获取标签控件本身的属性。用在TCM_INSERTITEM、TCM_GETITEM和TCM_SETITEM消息中。

C++代码
typedef struct tagTCITEMHEADER {      UINT mask;   // 掩码,可以为TCIF_IMAGE(iImage成员有效)、TCIF_RTLREADING、TCIF_TEXT(pszText成员有效)   UINT lpReserved1;   // 预留   UINT lpReserved2;   // 预留   LPTSTR pszText;     // 标签文本字符串   int cchTextMax;      int iImage;         // 图标在标签控件图像序列中的索引
} TCITEMHEADER, *LPTCITEMHEADER;  

 

2. TCITEM结构体

该结构体用来指定或获取标签页的属性。用在TCM_INSERTITEM、TCM_GETITEM和TCM_SETITEM消息中。

C++代码
typedef struct tagTCITEM {     UINT mask;  // 掩码,可以是TCIF_IMAGE(iImage成员有效)、TCIF_PARAM(lParam成员有效)、TCIF_RTLREADING、TCIF_STATE、TCIF_TEXT(pszText成员有效)
#if (_WIN32_IE >= 0x0300)   DWORD dwState;   DWORD dwStateMask;
#else   UINT lpReserved1;   UINT lpReserved2;
#endif   LPTSTR pszText;   int cchTextMax;   int iImage;   LPARAM lParam;     // 与标签页关联的32位数据
} TCITEM, *LPTCITEM;  

 3. TCHITTESTINFO结构体

该结构体包含了鼠标单击测试的信息。

C++代码
typedef struct tagTCHITTESTINFO
{   POINT pt;  // 鼠标点击测试的客户区坐标   UINT flags; // 接收点击测试的结果。有以下几种:TCHT_NOWHERE(坐标点不在标签上)、TCHT_ONITEM(坐标点在标签上但不在标签文本或图标上)、TCHT_ONITEMICON(坐标点在标签图标上)、TCHT_ONITEMLABEL(坐标点在标签文本上)
} TCHITTESTINFO, *LPTCHITTESTINFO;  

  4. NMTCKEYDOWN结构体

该结构体包含了标签控件中键盘按下的相关信息。主要用在TCN_KEYDOWN通知消息中。

typedef struct tagNMTCKEYDOWN
{   NMHDR hdr;   WORD wVKey;   UINT flags;
} NMTCKEYDOWN; 

标签控件的上半部分就讲到这里了,下节将继续讲解标签控件的知识和应用实例。

转载于:https://www.cnblogs.com/Tang-tangt/p/9466722.html

VS2010-MFC(常用控件:标签控件Tab Control 上)相关推荐

  1. 1、Web 窗体的基本控件——标签控件(Label)

    1.Web 窗体的基本控件--标签控件(Label) 标签控件(Label) 前端 <%@ Page Language="C#" AutoEventWireup=" ...

  2. 【自定义控件】c#winform自定义控件实现标签控件

    介绍 首先我们设计这个控件的时候要明白控件是怎样交互的, 熟悉b站的小伙伴应该知道 ,我们上传视频的时候会去选择标签 ,我们输入标签文本 按下回车就代表该标签已经添加成功了,效果图如下! 控件拆分 我 ...

  3. VS2010/MFC编程入门教程之目录和总结

    写这套VS2010/MFC编程入门教程历时八个月,时间比较长,都是鸡啄米在工作之余加班加点完成的.虽然有点累,但看到有这么多人过来支持鸡啄米,很是值得. 写每节教程我都力求讲明白,深入浅出的阐述每个知 ...

  4. VS2010/MFC编程入门

    近来鼓捣2D小游戏的过程中发现鸡啄米大神很好的MFC系列资料,在此汗颜将地址扒拉了过来,留待以后慢慢学习. VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) (http://ww ...

  5. VS2010/MFC编程入门教程

    一.VS2010/MFC编程入门教程之目录       第一部分:VS2010/MFC开发环境       VS2010/MFC编程入门之前言        VS2010/MFC编程入门之一(VS20 ...

  6. VS2010/MFC 编程入门教程之目录和总结

    [原地址]:http://www.jizhuomi.com/software/257.html 鸡啄米这个网站不是很了解,但确实有很多好文章.自己工作需要,在vs2010 下学习mfc的知识,发现了这 ...

  7. VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)

    前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统中是很常见的,例如资源管理器左侧的 ...

  8. VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)

    上一节是关于列表视图控件List Control的上半部分,简单介绍了列表视图控件,其通知消息的处理和有关结构体的定义.本节继续讲解下半部分,包括列表视图控件的创建.CListCtrl类的主要成员函数 ...

  9. 鸡啄米之VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)

    目录 一.目的: 1.点击列表框某个变量后,编辑框就显示出来这个变量名字 一.参考: 1.VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) ①总结:good:亲测有效,适合多 ...

  10. VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件 ...

最新文章

  1. SpringBoot项目打成war包部署到外部Tomact运行
  2. 近期活动盘点:数据科学研究院论坛“人文社科专场、全球最大的免费编程社区公开课、DeeCamp2019:实战AI 铸造定雨神针...
  3. IDC公司:服务器类微处理器市场最新预测
  4. 马云启动“NASA”计划 为未来20年愿景研发核心科技
  5. 使用Azure Blob存储托管Maven工件
  6. XP操作系统最优视觉效果
  7. 西瓜书+实战+吴恩达机器学习(十三)监督学习之随机森林 Random Forest
  8. django快捷复习手册
  9. 手机python文本编辑器下载_python写的一个文本编辑器
  10. Flex builder3 序列号生成器
  11. python:使用sklearn 计算 precision、recall、F1 score(多分类)
  12. C#+TaskScheduler(定时任务)实现定时自动下载
  13. zTree 树形中的搜索定位节点
  14. HDU 5964 平行四边形/Pland 【平面几何】
  15. 无盘系统服务器虚拟内存,Windows7无盘虚拟内存如何设置
  16. PrivateKey私匙获取,签名生成
  17. java正则在线转换_java正则表达式(转)
  18. android数据线投屏电视机,手机投屏电视的几种方式点评
  19. 查看Android版本支持哪些蓝牙协议
  20. 在职研究生读计算机专业,读计算机专业在职研究生让我择业自如高升有望

热门文章

  1. 机器学习和深度学习资料汇总【01】
  2. 【MFC自绘窗口】 窗口设计第一课
  3. HM16.0之帧间Merge模式——xCheckRDCostMerge2Nx2N
  4. SQLiteDev与.NET日期格式,该字符串未被识别为有效的 DateTime
  5. 金蝶K3批量出库语句与执行方法
  6. 注意,Windows7只能安装Python 3.8以下的版本
  7. 计算机科学导论内容大纲,《计算机科学导论》大纲
  8. wps画流程图交叉弧形_wps画的流程图打印不清晰|wps怎么绘制出立体流程图?wps绘制出立体流程图的方法...
  9. 美图秀秀计算机教程,如何用美图秀秀换背景?美图秀秀换背景图文教程-电脑教程...
  10. Hadoop学习之hdfs集群搭建详解