最详细-vc TabCtrol控件的用法(有注释)
来源:互联网 发布:linux vi命令显示行号 编辑:程序博客网 时间:2024/04/29 07:53
步骤一:建一个MFC的向导,工程类型为基本的对话框,取名为MyTest
步骤二:对话框中放入一个Tabcontrol控件,关联一个变量,取名为m_tab1,在插入2个资源对话框
如下图
分别设置对话框的属性为 style为child(目的为了使自己能嵌入到其他的控件中,后面有说明),border:设置为none(这个就是为了好看,不信得话你可以不设置这个属性),去掉Title Bar 这个选项,
步骤三:分别为这2个对话框,关联一个类,类名分别为CDlg1, CDlg2,在这2个对话框中分别放个按钮或者文本之类的东西,
步骤四:回到MyTestDlg类中,添加2个成员变量,分别是2个对话框的成员变量,即:CDlg m_Dlg1;和CDlg2 m_Dlg2; 并且在CPP文件中添加#include "Dlg2.h" 和#include "Dlg1h" (目的就是为了能声明2个对话框类的变量,不然的话会出现编译错误),
步骤五:在MyTestDlg类中初始化OnInitDialog()函数中添加如下函数
m_tab.InsertItem(0,"test1"); //往Tabcontrol中添加一个标签页,标签的名字是test1,注意这里是从0开始的 m_tab.InsertItem(1,"test2");//往Tabcontrol中添加另一个标签页,标签的名字是test2 m_Dlg1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));//创建Dlg1对话框,并且把这个对话框附加到Tabcontrol中 m_Dlg2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));//创建Dlg2对话框,并且把这个对话框附加到Tabcontrol中 CRect rect; m_tab.GetClientRect(&rect); //获得Tabcontrol控件的大小,为了使对话框能嵌入到里面,是程序看起来美观大方m_Dlg1.SetWindowPos(NULL,10, 30,rect.right - 20,rect.bottom -40,SWP_SHOWWINDOW);//这个函数的目的就是改变对话框的大小来适合TabCtrol控件的大小,并且在TabCtrol控件中首先显示Dlg1的页面,
步骤六:当然了,当你点击Tabcontrol控件标签页的时候会触发OnSelchange消息,如果不重载这个消息的时候,对话框就会只显示Dlg1,而不显示Dlg2,页面也不会切换,我在刻意在这个消息映射函数中添加我们自己的处理过程
如下
void CRtDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult){ // TODO: Add your control notification handler code here int nCurSel=m_tab.GetCurSel();//获得用户选择了那个标签页 CRect rect; m_tab.GetClientRect(&rect); //得到Tabcontrol控件的大小,为后面显示Dlg1和Dlg2的位置和大小 switch(nCurSel) { case 0: //当用户选择标签0的时候(标签是以0为索引的),显示Dlg1,隐藏Dlg2 { m_Dlg1.SetWindowPos(NULL,10, 30,rect.right - 20,rect.bottom -40,SWP_SHOWWINDOW); m_Dlg2.SetWindowPos(NULL,10, 30,rect.right - 20,rect.bottom -40,SWP_HIDEWINDOW); } break; case 1: //当用户选择标签1的时候(标签是以0为索引的),显示Dlg2,隐藏Dlg1 m_Dlg2.SetWindowPos(NULL,10, 30,rect.right - 20,rect.bottom -40,SWP_SHOWWINDOW); m_Dlg1.SetWindowPos(NULL,10, 30,rect.right - 20,rect.bottom -40,SWP_HIDEWINDOW); break; } *pResult = 0;}
0 0
- 最详细-vc TabCtrol控件的用法(有注释)
- 联合(union)的最详细用法
- webview学习记录(有比较详细的代码注释)
- java文件下载(有非常详细的注释).
- spring2.5 最详细的注释讲解
- php最详细的配置文件(中文注释)
- 最详细的WSDD配置文件注释
- VC MessageBox的详细用法
- 可视化日历【Java,有详细的注释】
- HDU1238 有详细注释
- VC Tab控件的用法
- VC Tab控件的用法
- VC Tab控件的用法
- CListCtrl控件的详细用法
- CListCtrl控件的详细用法
- VC++里ComboBox的用法(详细版)
- VC++ Tab Control控件的详细使用
- VC++ Tab Control控件的详细使用
- XML基础学习
- CSS3背景
- 概率计算
- 超冗余机械臂逆运动学
- js局部刷新的分页插件
- 最详细-vc TabCtrol控件的用法(有注释)
- MAC下安装vmware fusion8虚拟机软件
- 栈 求解迷宫
- 公司开发者账户申请
- AccessToken类
- centos6.5环境openldap实战之ldap配置详解及web管理工具lam(ldap-account-manager)使用详解
- MVP架构的理解与实现Demo
- 使用unity自带类行加载.txt 文件
- 拾遗系列(六)自动提示宏