CTabCtrl

转载至 http://blog.csdn.net/jacklam200/archive/2008/08/01/2753797.aspx

一、在对话框视图中加入CTabCtrl控件

资源ID:IDC_TAB,变量名:m_Tab

二、在OnInitDialog()中加入以下代码:
m_Tab.InsertItem(0,"窗口1");
m_Tab.InsertItem(1,"窗口2");
// 创建子窗口实例(事先创建好),将父窗口设为m_Tab
// CChileDlg1 m_dlgChile1;
// CChileDlg2 m_dlgChile2;
m_dlgChile1.Create(IDD_DIALOG_CHILD1,GetDlgItem(IDC_TAB));
m_dlgChile2.Create(IDD_DIALOG_CHILD2,GetDlgItem(IDC_TAB));
// 将子窗口显示在m_Tab范围内
CRect rs;
m_Tab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4;
m_dlgChile1.MoveWindow(rs);
m_dlgChile2.MoveWindow(rs);
// 默认显示第一个子窗口
m_Tab.SetCurSel(0);
m_dlgChile1.ShowWindow(TRUE);

示例代码
view plaincopy to clipboardprint?
     Item.mask = TCIF_TEXT;  
    int nPages = 2; //3个页面  
 
    for(int nN = 0; nN < nPages; nN++)  
    {  
        switch(nN)  
        {  
        case 0:  
             m_zipDlg.Create(IDD_ZIP,GetDlgItem(IDC_TAB1));   
            break;  
        case 1:  
            m_unZipDlg.Create(IDD_UNZIP,GetDlgItem(IDC_TAB1));  
            break;  
        }  
    }  
 
    for(int nN = 0; nN < nPages; nN++)  
    {  
        switch(nN)  
        {  
        case 0:  
            Item.pszText=_T("ZIP");  
            break;  
        case 1:  
            Item.pszText=_T("UNZIP");  
            break;  
        }  
      
        m_tab.InsertItem(nN,&Item);  
    }  
    m_tab.SetCurSel(0);  
     m_zipDlg.ShowWindow(TRUE);  
Item.mask = TCIF_TEXT;
 int nPages = 2; //3个页面

for(int nN = 0; nN < nPages; nN++)
 {
  switch(nN)
  {
  case 0:
    m_zipDlg.Create(IDD_ZIP,GetDlgItem(IDC_TAB1));
   break;
  case 1:
   m_unZipDlg.Create(IDD_UNZIP,GetDlgItem(IDC_TAB1));
   break;
  }
 }

for(int nN = 0; nN < nPages; nN++)
 {
  switch(nN)
  {
  case 0:
   Item.pszText=_T("ZIP");
   break;
  case 1:
   Item.pszText=_T("UNZIP");
   break;
  }
 
  m_tab.InsertItem(nN,&Item);
 }
 m_tab.SetCurSel(0);
  m_zipDlg.ShowWindow(TRUE);

三、响应m_Tab的TCN_SELCHANGE消息,实现切换页面功能
void CMyDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
int nCurSel = m_Tab.GetCurSel();

switch(nCurSel)
{
case 0: // 显示子窗口1
    m_dlgChile1.ShowWindow(TRUE);
    m_dlgChile2.ShowWindow(FALSE);
    break;
case 1: // 显示子窗口2
     m_dlgChile1.ShowWindow(FALSE);
    m_dlgChile2.ShowWindow(TRUE);
    break;
}
*pResult = 0;
}
------------------------------------------------------------------------------------------------------
windows mobile的
PROPSHEETHEADER psh;
 PROPSHEETPAGE psp[2];
 int i = 0;
 memset(&psh, 0, sizeof(PROPSHEETHEADER));
 for(i = 0; i < 2; i++)
 {
  psp[i].dwSize    = sizeof(PROPSHEETPAGE);
  psp[i].dwFlags   = PSP_DEFAULT | PSP_USETITLE;
  psp[i].hInstance = g_hInst;
  psp[i].lParam    = (LPARAM)hWnd;
 }
 psp[0].pszTitle      = TEXT("压缩文件");
 psp[0].pszTemplate   = MAKEINTRESOURCE(IDD_ZIPFILE);
 psp[0].pfnDlgProc    = (DLGPROC)ZipDlgProc;
 psp[1].pszTitle      = TEXT("解压文件");
 psp[1].pszTemplate   = MAKEINTRESOURCE(IDD_UNZIP);
 psp[1].pfnDlgProc    = (DLGPROC)UnzipDlgProc;
 psh.dwSize           = sizeof(PROPSHEETHEADER);
 psh.dwFlags          = PSH_PROPSHEETPAGE | PSH_MAXIMIZE;
 psh.hwndParent       = hWnd;
 psh.hInstance        = g_hInst;
 //psh.pszCaption       = TEXT("Prop Sheet Title");
 psh.nPages           = 2;
 psh.nStartPage       = 0;
 psh.ppsp             = psp;
 psh.pfnCallback      = 0;
 i = PropertySheet(&psh);

时间: 2024-10-10 22:19:39

CTabCtrl的相关文章

CTabCtrl的使用

1.在主窗口中定义一个CtabCtrl,添加变量m_tabctrl; 2.添加两个子窗口IDD_ONE_DIALOG,IDD_TWO_DIALOG,属性为child和无边框 3.在主窗口头文件中定义这两个子窗口的类对象m_one,m_two 自定义下面函数,放在初始化函数里面,就给这个tab生成了两个界面 void CDlg::AddTab(){ CRect rect; this->GetClientRect(&rect); m_tabctrl.InsertItem(0, _T("

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 CTes

CTabCtrl控件

CTabCtrl常用属性 CTabCtrl类常用成员函数 CTabCtrl代码示例   一.CTabCtrl控件属性 Bottom:底部样式 Vertical:垂直样式  与Bottom结合使用,可以使选项卡显示在上下左右四个位置 Buttons:按钮式选项卡 Flat Button:平面按钮选项卡,结合Buttons使用  MultiLine:多行显示选项卡 Style:右对齐(Right Justify,Fixed Width,ragged,right) 二.CTabCtrl类常用成员函数

MFC标签控件CTabCtrl

1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,声明一个CTabCtrl变量: CTabCtrl m_tab; 变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句: DDX_Control(pDX, IDC_TAB1, m_tab); IDC_TAB1是Tab Control控件的ID. 2.建立两个对话框程序,用来当做Tab Contr

使用CImageList的一点心得

CImageList就是一个容器,用来存储图片资源,方便这些资源被CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl,CListCtrl等使用. 要使用CImgeList首先要使用它的create函数: 一般用的比较多的是这一个函数,当然,它还有很多重载,自己可以去翻阅msdn. BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow ); cx与cy表示图标的大小,nF

转:Tab Control控件的详细使用

1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl.    3. 在对话框的初始化函数OnInitDia

tab封装2

// MyTabCtrl.cpp : 实现文件 // #include "stdafx.h" #include "FileCleaner.h" #include "MyTabCtrl.h" // CMyTabCtrl IMPLEMENT_DYNAMIC(CMyTabCtrl, CTabCtrl) CMyTabCtrl::CMyTabCtrl() { } CMyTabCtrl::~CMyTabCtrl() { } //参数列表 //第1个位子窗口个

C++入门

  C++入门必看,提升必看 Visual C++MFC入门教程 目录 +-- 第一章 VC入门|------ 1.1 如何学好VC|------ 1.2 理解Windows消息机制|------ 1.3 利用Visual C++/MFC开发Windows程序的优势|------ 1.4 利用MFC进行开发的通用方法介绍|------ 1.5 MFC中常用类,宏,函数介绍+-- 第二章 图形输出|------ 2.1 和GUI有关的各种对象|------ 2.2 在窗口中输出文字|------

MFCTabCtrl

//.h CTabCtrl m_tabctrl;#define MAX_DLG_PAGE 2 CDialog* m_pDialog[MAX_DLG_PAGE]; int m_iSelectedPage; CPageProcess m_pageProcess; CPageFile m_pageFile; //.cpp BOOL CDemoTabCtrlDlg::OnInitDialog(){//... //插入页标题 m_tabctrl.InsertItem(0, _T("Process"