IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> MFC Tab 控件使用 -> 正文阅读

[C++知识库]MFC Tab 控件使用

1. 新建一个基于 dialog 的空 MFC 工程

2. 添加两个新的对话框作为子对话框

?

接下来两步,每个子对话框都要操作:

2.1 设置各子对话框属性为 "child, none"

2.2 给各对话框生成对应的对话框类:

3. 在父对话框的头文件中 include 两个子对话框类的头文件并添加两个子对话框的成员变量

4. 在父对话框中添加 Tab 控件并添加此 Tab 控件成员变量

5. 在父对话框 initial 函数中添加如下代码?

    CRect tabRect;   // 标签控件客户区的位置和大小  
	
	m_tab_mainDlg_ct.InsertItem(0, _T("Tab Dialog1"));			// 插入第一个标签“Tab Dialog1”  
	m_tab_mainDlg_ct.InsertItem(1, _T("Tab Dialog2"));			// 插入第二个标签“Tab Dialog2”  

	m_tabDlg1.Create(IDD_DIALOG_TABDLG1, &m_tab_mainDlg_ct);    // 创建第一个标签页  
	m_tabDlg2.Create(IDD_DIALOG_TABDLG2, &m_tab_mainDlg_ct);	// 创建第二个标签页  

	m_tab_mainDlg_ct.GetClientRect(&tabRect);    // 获取标签控件客户区Rect  
	// 调整tabRect,使其覆盖范围适合放置标签页  
	tabRect.left += 1;
	tabRect.right -= 1;
	tabRect.top += 25;
	tabRect.bottom -= 1;
	// 根据调整好的tabRect放置m_jzmDlg子对话框,并设置为显示  
	m_tabDlg1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
	// 根据调整好的tabRect放置m_androidDlg子对话框,并设置为隐藏  
	m_tabDlg2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

6. 给 Tab 控件添加 TCN_SELCHANGE 通知消息及编写其处理函数?

?

?TCN_SELCHANGE 消息处理函数中添加代码如下:

	CRect tabRect;    // 标签控件客户区的Rect  

	// 获取标签控件客户区Rect,并对其调整,以适合放置标签页  
	m_tab_mainDlg_ct.GetClientRect(&tabRect);
	tabRect.left += 1;
	tabRect.right -= 1;
	tabRect.top += 25;
	tabRect.bottom -= 1;

	switch (m_tab_mainDlg_ct.GetCurSel())
	{
		// 如果标签控件当前选择标签为“Tab Dialog1”,则显示m_tabDlg1对话框,隐藏m_tabDlg2对话框  
	case 0:
		m_tabDlg1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
		m_tabDlg2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		break;
		// 如果标签控件当前选择标签为“Tab Dialog2”,则显示m_tabDlg2对话框,隐藏m_tabDlg1对话框  
	case 1:
		m_tabDlg1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		m_tabDlg2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
		break;
	default:
		break;
	}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:23:18  更:2022-02-22 20:24:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:07:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码