CTabCtrl - 如何使用TabCtrl控件

建立一个基于对话框的MFC应用程序TabCtrlTest

Step 1:在资源视图中,新建对话框资源,资源ID:IDD_TabCtrlExample_DLG,添加类:CTabCtrlExamlpeDlg。

Step 2:在对话框视图中加入CTabCtrl控件,资源ID:IDD_TAB1,添加控件变量:m_ctlTabInfo。

Step 3:新建两个对话框:

对话框ID

添加类

设置对话框属性

补充

对话框1

IDD_Test1_DlG

CTest1

Border:None

Styles:Child

界面可自行设计

对话框2

IDD_Test2_DlG

CTest2

在CTabCtrlExamlpeDlg定义两个成员变量:

public:
CTabCtrl m_ctlTabInfo;
CTest1 m_test1Page;//界面1
CTest2 m_test2Page;//界面2

Step 4:重写CTabCtrlExamlpeDlg::OnInitDialog()函数

(类视图下,选中CCTabCtrlExamlpeDlg类,右键属性,单击属性界面右边第一个正方体图标,双击OnInitDialog即可)

BOOL CTabCtrlExamlpeDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO: 在此添加额外的初始
#pragma region 初始化TabCtrl控件
//首先,为各Tab页添加标题
m_ctlTabInfo.InsertItem(,_T("界面一"));
m_ctlTabInfo.InsertItem(,_T("界面二")); //第二,建立各Tab页
m_test1Page.Create(IDD_Test1_Dlg, GetDlgItem(IDC_TAB1));
m_test2Page.Create(IDD_Test2_Dlg, GetDlgItem(IDC_TAB1)); //第三,设置页面的位置在m_ctlTabInfo控件范围内
CRect rc;
m_ctlTabInfo.GetClientRect(rc);
rc.top += ;
rc.bottom -= ;
rc.left += ;
rc.right -= ; m_test1Page.MoveWindow(rc);
m_test1Page.ShowWindow(SW_SHOW);
m_test2Page.MoveWindow(rc);
m_test2Page.ShowWindow(SW_HIDE);
#pragma endregion return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

Step 5:响应TabCtrl控件的TCN_SELCHANGE消息,实现切换页面功能。

(右键TabCtrl控件à添加事件处理程序à选中TCN_SELCHANGE消息à添加编辑)

void CTabCtrlExamlpeDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = ;
switch (m_ctlTabInfo.GetCurSel())
{
case :
m_test1Page.ShowWindow(SW_SHOW);
m_test2Page.ShowWindow(SW_HIDE);
break;
case :
m_test1Page.ShowWindow(SW_HIDE);
m_test2Page.ShowWindow(SW_SHOW);
break;
default:
break;
}
}

CTabCtrl - 如何使用TabCtrl控件的更多相关文章

  1. MFC TabCtrl 控件修改标签尺寸

    注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width. 第一种方法 MFC,tabcontrol控件改变标签大小 - CSDN博客 https://blog.csdn.ne ...

  2. VC中动态添加控件

    VC中动态添加控件 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个 ...

  3. MFC 动态创建控件

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的.   一.创建动态控件:   为了对照,我们先来看一下静态控件的创建.   放置静态控件时必须先建立一个容器,一 ...

  4. MFC控件CTabCtrl关联变量

    1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...

  5. 在CTabCtrl上动态创建CListCtrl控件

    m_List.Create(WS_OVERLAPPED|WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_AUTOARRANGE|LVS_SHOWSELALWAYS|LVS_EDI ...

  6. Clean小程序(控件消息)

    一 . 准备工作 创建一个基于对话框的MFC项目 删除对话框上的工具 二 . 实现将seven图片贴到上面,按一下则换一张图片 1.在资源视图中添加位图资源,通过属性修改图片ID 2.将对话框拉长,防 ...

  7. 023.MFC_属性页控件(tab control)

    属性页控件属性页->选项卡->对话框CTabCtrl一.建立名为tabCtrl的mfc工程,添加Tab Control控件,设置属性ID为IDC_TAB,并添加变量m_tab 在tabCt ...

  8. Windows 程序设计(4) MFC-02 基本控件-下

    1. TabCtrl 标签控件 1.1 创建主窗口 1)CMFCTabControlDlg,拖拽标签控件 2)增加变量 CTabCtrl m_tabCtrl 3)设置相关成员变量和处理函数 CFile ...

  9. MFC学习 标签页与属性页及各常用控件使用

    参考 http://blog.csdn.net/anye3000/article/details/6700023 CTabCtrl: BOOL CTabTestDlg::OnInitDialog() ...

随机推荐

  1. YBC中国国际青年创业计划

    YBC中国国际青年创业计划 中国青年创业国际计划(简称YBC)是共青团中央.中华全国青年联合会.中华全国工商业联合会共同倡导发起的青年创业教育项目.该项目参考总部在英国的青年创业国际计划( Youth ...

  2. Recover a file even if it was not committed but it has to have been added when you use git reset head by mistake.

    git init echo hello >> test.txt git add test.txt Now the blob is created but it is referenced ...

  3. floodlight 学习(一)

    其实这个控制器应该没有多少人用了吧,一年多都没更新了,鉴于最近无论如何都要用这个,将学习笔记贴出来吧. 1.FloodlightProvider(Dev) 1.1简介:FloodlightProvid ...

  4. poj 1118 Lining Up(水题)

    再思考一下好的方法,水过,数据太弱! 本来不想传的! #include <iostream> using namespace std; #define MAX 702 /*284K 422 ...

  5. IsNullOrEmpty和s == null || s.Length == 0哪个快

    在写扩展方法时,看到有人用==null这个方法,说快,上网找了些资料,最后在csdn的博客上看到了一篇文章,说实测是后两者快,于是我也试着做了一个程序运行了一下,却发现这样的结果: 我测试了一个,发现 ...

  6. D3学习教程

    [ D3.js 入门系列 ] 入门总结 | OUR D3.JS http://www.ourd3js.com/wordpress/?p=396

  7. list去重 转载

    http://blog.csdn.net/huaishuming/article/details/47778319 1. 单个List 去重: 如果用的是Set集合就不用怕重复的问题了,如果用的Lis ...

  8. EC读书笔记系列之7:条款12 复制对象时勿忘其每一个成分

    记住: ★copying函数应确保复制“对象内的所有成员变量”及“所有base class成分” ★不要尝试以某个copying函数实现另一个copying函数.应该将共同机能放进第三个函数中,并由两 ...

  9. leetcode LRU Cache python

    class Node(object): def __init__(self,k,x): self.key=k self.val=x self.prev=None self.next=None clas ...

  10. Arduino周边模块:LCD与数码管

    Arduino周边模块:LCD与数码管 Arduino周边模块:LCD与数码管 数码管的介绍 数码管一般是用来显示数字和字符的 数码管原理 一位数码管 该图是一个8段数码管,该数码管中包含了8个LED ...