1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个TabControl控件

2、根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl

3、插入两个新的对话框其属性作如下修改:

Border:none //边界为空,这样它就没了标题栏

Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。

Title Bar:False

在上面加一些控件什么的,具体操作跟普通对话框没有区别。
完成后从这两个对话框模板生成新的对话框类CDlg1,CDlg2。

4、在主对话框头文件CMydlg.h中为新添加进来的2个类增加2个变量:
如:CDlg1 page1;

5、在主对话框的OnInitDialog()函数中添加如下类似的代码:

TCITEM item;

item.mask = TCIF_TEXT;

item.pszText =_T( "第一页");

m_tabctrl.InsertItem (0,&item);

item.pszText =_T("第二页");

m_tabctrl.InsertItem (1,&item);

page1.Create (IDD_DIALOG1,&m_tabctrl);

page2.Create (IDD_DIALOG2,&m_tabctrl);

CRect rect;

m_tabctrl.GetClientRect(&rect);

rect.top+=20;

rect.bottom-=4;

rect.left+=4;

rect.right-=4;

page1.MoveWindow(&rect);

page2.MoveWindow(&rect);

page1.ShowWindow(TRUE);

m_tabctrl.SetCurSel(0);

6、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件,选择添加一个事件处理程序,选择可以完成这个操作

在事件处理中添加如下代码,如下例:

int CurSel;

CurSel=m_tabctrl.GetCurSel();

switch(CurSel)

{ case 0:

page1.ShowWindow(TRUE);

page2.ShowWindow(FALSE);

break;

case 1:

page1.ShowWindow(FALSE);

page2.ShowWindow(TRUE);

break;

default:

}

要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel() 函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。

TabControl控件用法图解的更多相关文章

  1. WPF之TabControl控件用法

    先创建实体基类:NotificationObject(用来被实体类继承) 实现属性更改通知接口: using System; using System.Collections.Generic; usi ...

  2. Visual Studio中的TabControl控件的用法

    今天遇到了一个自己没遇到过的控件TabControl控件,所以找了点关于它的资料 TabControl属性 DisplayRect:只定该控件客户区的一个矩形  HotTrack:设置当鼠标经过页标签 ...

  3. 关于Datagridview控件用法的一些总结(设置列chicun)

    1. 关于Datagridview控件用法的一些总结:http://www.cnblogs.com/mingjiatang/p/4968049.html

  4. TabControl控件的美化

    文件下载:http://files.cnblogs.com/zfanlong1314/TabControlEX.rar 本文转载:http://www.cnblogs.com/lmlblog/arch ...

  5. WPF 自定义TabControl控件样式

    一.前言 程序中经常会用到TabControl控件,默认的控件样式很普通.而且样式或功能不一定符合我们的要求.比如:我们需要TabControl的标题能够居中.或平均分布:或者我们希望TabContr ...

  6. C#利用tabControl控件实现多窗体嵌入及关闭

    创建一个主窗体(Formmain).两个副窗体(Form1,Form2);在主窗体中分别添加一个menuStrip控件.tabControl控件,并在menu控件上添加一个主菜单和两个子菜单   继而 ...

  7. CustomValidator控件用法

    虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:CompareValidator ——比较验证控件RangeValidator — ...

  8. WinForm下的TabControl控件

    一.TabControl控件介绍 TabControl实现的具体效果: 在实际工作中,我是这么用TabControl控件,实现切换页面效果.比如要实现某个界面进行操作,然后还要查看一下日志,就可以使用 ...

  9. WPF TabControl控件-事件相关问题

    TabControl控件的TabItem的Content元素,例如:DataGrid控件,在对事件的处理时,需要对事件的源引起关注,当需要处理DataGrid的事件时,事件会传递到TabControl ...

随机推荐

  1. 使用node-inspector调试NodeJS代码

    使用node-inspector调试NodeJS代码 任何一门完备的语言技术栈都少不了健壮的调试工具,对于NodeJS平台同样如此,笔者研究了几种调试NodeJS代码的方式,通过对比,还是觉得node ...

  2. IE报错:缺少标识符、字符串或数字

    在调试ExtJS程序时,在firefox和chrome上都能显示,但一到IE上就报错,后来从左下角的JS报错提示中才发现,原来是JS代码中多加了个逗号. menu: { items: [{ text: ...

  3. Maven添加Oracle驱动及依赖

    oracle驱动先去官网下载,下载下来后,需要安装到maven本地仓库,然后再pom中添加依赖. 1下载oracle驱动包 ojdbc6-11.2.0.3.jar 2命令行安装到maven仓库 mvn ...

  4. Spark 宽窄依赖

    面试时被问到spark RDD的宽窄依赖,虽然问题很简单,但是答得很不好.还是应该整理一下描述,这样面试才能答得更好. 看到一篇很好的文章,转载过来了.感觉比<spark技术内幕>这本书讲 ...

  5. Mongodb笔记(三)user && aggregate && mapReduce

    版本:mongodb3.4. User: mongodb使用验证登录:默认不开启,mongod中使用--auth开启:  mongod -port=3000 --auth  : 基本方法: db.cr ...

  6. 英语每日阅读---3、VOA慢速英语(翻译+字幕+讲解):哈佛大学被控歧视亚裔学生

    英语每日阅读---3.VOA慢速英语(翻译+字幕+讲解):哈佛大学被控歧视亚裔学生 一.总结 一句话总结:Harvard Accused of Discriminating Against Asian ...

  7. redis、kafka、rabittMQ对比 (转)

    本文不对三者之间的性能进行对比,只是从三者的特性上区分他们,并指出三者的不用应用场景. 1.publish/subscribe 发布订阅模式如下图所示可以具有多个生产者和发布者,redis.kafka ...

  8. 51nod-1259-分块+dp

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1259 1259 整数划分 V2 基准时间限制:1 秒 空间限制:1310 ...

  9. 原生javascript-图片弹窗交互效果

    本人的第一个原生js插件 - picLightBox 在线例子:http://lgy.1zwq.com/photoBox/ [一]用var 声明多个变量,比每个变量都用var快多了 var sScro ...

  10. ios通知使用 书上案例 简单易懂

    /* The notification name */const NSString *ResultOfAppendingTwoStringsNotification =@"ResultOfA ...