CTabCtrl - 如何使用TabCtrl控件
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控件的更多相关文章
- MFC TabCtrl 控件修改标签尺寸
注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width. 第一种方法 MFC,tabcontrol控件改变标签大小 - CSDN博客 https://blog.csdn.ne ...
- VC中动态添加控件
VC中动态添加控件 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个 ...
- MFC 动态创建控件
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一 ...
- MFC控件CTabCtrl关联变量
1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...
- 在CTabCtrl上动态创建CListCtrl控件
m_List.Create(WS_OVERLAPPED|WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_AUTOARRANGE|LVS_SHOWSELALWAYS|LVS_EDI ...
- Clean小程序(控件消息)
一 . 准备工作 创建一个基于对话框的MFC项目 删除对话框上的工具 二 . 实现将seven图片贴到上面,按一下则换一张图片 1.在资源视图中添加位图资源,通过属性修改图片ID 2.将对话框拉长,防 ...
- 023.MFC_属性页控件(tab control)
属性页控件属性页->选项卡->对话框CTabCtrl一.建立名为tabCtrl的mfc工程,添加Tab Control控件,设置属性ID为IDC_TAB,并添加变量m_tab 在tabCt ...
- Windows 程序设计(4) MFC-02 基本控件-下
1. TabCtrl 标签控件 1.1 创建主窗口 1)CMFCTabControlDlg,拖拽标签控件 2)增加变量 CTabCtrl m_tabCtrl 3)设置相关成员变量和处理函数 CFile ...
- MFC学习 标签页与属性页及各常用控件使用
参考 http://blog.csdn.net/anye3000/article/details/6700023 CTabCtrl: BOOL CTabTestDlg::OnInitDialog() ...
随机推荐
- C++ dynamic_cast实现原理
dynamic_cast是一个操作符,其用法不再赘述.查看汇编码可以发现实际调用的是这个函数__RTDynamicCast,其内部实现如下: rtti.h: #pragma once extern & ...
- 快学Scala习题解答—第一章 基础
1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on th ...
- paip.QQ音乐导出歌单总结
paip.QQ音乐导出歌单总结 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax ...
- B/S状态(同步)AJAX技术(异步)
同步(Synchronization).它是最常见的click-refresh状态,或提交一个表单,然后整个页面被刷新. 异步(Asynchrony).当前非常热的AJAX就是典型样例,提交请求返回对 ...
- Girl_iOS100天学iOS的第一天(规划)
不好的开端. 只是还好,总算是開始. 今天一直在做项目中的某个模块,发现自己尽管工作了一段时间,但编码速度还是够慢的 >.< 探究其为什么慢的原因,还是由于自己对某些控件等基础的不熟悉,如 ...
- Java异常分类 转载
Java异常分类 http://blog.csdn.net/woshixuye/article/details/8230407 一.基本概念 看java的异常结构图 Throwable是所有异 ...
- 原来你是个这样的JVM
第一节 本文将与其它文章不同,我们采用章节制来讲述每个知识点,但每个章节之间只有较低的耦合度,只要了解大概主线思路,一般都能看懂! OK啦,进入主题!虚拟机的发展史就不讲啦,和java之间的关系也不言 ...
- 关于智能指针auto_ptr
智能指针auto_ptr和shared_ptr也是面试中经常被问到的一个 感觉看auto_ptr的源码反而更加容易理解一些,因为源码的代码量并不大,而且比较容易理解. 本篇主要介绍auto_ptr 其 ...
- css 里层元素撑不开外层元素
一般是,里面那层做了高度设置,如:height, overflow等 另外可以让里面元素清楚浮动,如:clear:both
- jQuery 1.9不支持$.browser 怎么判断浏览器类型和版本
$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());$.browser.webkit = /webkit/.te ...