2024年4月2日发(作者:)

TAB Control控件 的使用方法。

2010年08月30日 星期一 14:25

TAB Control控件 的使用方法。

2009-08-05 12:25

(转)VC中使用TAB Control控件(2009-06-21 10:49:43)标签:控件 杂谈 分

类:vc学习

VC中使用TAB Control控件

假如我现在有个SDI程序,View是Form View,想在上面放个Tab Control,

包含两个Page。现在让我们来看看应该怎样处理。

首先当然要增加一个Tab Control资源,然后利用Class Wizard,在View中

增加一个Control变量。

接着建立两个对话框资源,别忘了把Style改为Child,Border改为None。然

后就可以在上面加其他控件了。

接着利用Class Wizard,分别为这两个对话框建立两个类,比如CPage1和

CPage2。

然后在View类头文件中,加入这两个对话框对象。同时增加一个变量int

m_CurSelTab,用了表明是哪个Page即将被切换。

为了避免用户在切换Tab时,程序对Tab Index的枚举,可以利用数组来做这

个事情。

在View的初始化函数中需要把CPage1、CPage2和Tab Control关联起来,并

保存页面地址,设置初始页面,等等。

void CTab_testView::OnInitialUpdate()

{

CFormView::OnInitialUpdate();

GetParentFrame()->RecalcLayout();

ResizeParentToFit();

//为Tab Control增加两个页面

m_Item(0, _T("First"));

m_Item(1, _T("Second"));

//创建两个对话框

m_(IDD_DIALOG1, &m_tab);

m_(IDD_DIALOG2, &m_tab);

//设定在Tab内显示的范围

CRect rc;

m_entRect(rc);

+= 20;

-= 8;

+= 8;

-= 8;

m_ndow(&rc);

m_ndow(&rc);

//把对话框对象指针保存起来

pDialog[0] = &m_page1;

pDialog[1] = &m_page2;

//显示初始页面

pDialog[0]->ShowWindow(SW_SHOW);

pDialog[1]->ShowWindow(SW_HIDE);

//保存当前选择

m_CurSelTab = 0;

}

这里面需要注意的是,我用了一个CDialog指针数组来进行保存,数组的大小

是Tab Control页面的个数,数组下标对应着每个页面的索引(这样方便快速

存取)。

用户切换时,需要响应相关的消息。

void CTab_testView::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)

{

// TODO: Add your control notification handler code here

pDialog[m_CurSelTab]->ShowWindow(SW_HIDE);

m_CurSelTab = m_Sel();

pDialog[m_CurSelTab]->ShowWindow(SW_SHOW);

*pResult = 0;

}

首先我们先把当前的页面隐藏起来,然后得到新的页面索引,最后就把相关页