Tab控件的使用(一)

Tab控件的使用(一)
功能:在两个标签页中显示两个不同的内容。标签页的内容也需要设置。

说明:添加控件的时候,可能会显示是多个标签页,但是如果不添加任何代码的话,就会显示0个页面。所以,需要手动添加代码来显示。

第一步:显示多个标签页。
     //  TODO: Add extra initialization here
    TCITEM  * ptc  =   new  TCITEM;
    ptc
-> mask  =  TCIF_TEXT; // 通过mask的值来设定不同的格式布局,从而后面的具体参数就不同的赋值
    ptc -> pszText  =   " C++ " ;
    m_tab.InsertItem(
0 ,ptc);

    ptc
-> mask  =  TCIF_TEXT;
    ptc
-> pszText  =   " Visual C++ " ;
    m_tab.InsertItem(
1 ,ptc);

    GetDlgItem(IDC_STATIC1)
-> ShowWindow(SW_SHOW);
    GetDlgItem(IDC_STATIC2)
-> ShowWindow(SW_HIDE);
此部分代码添加在初始化的函数中,关键是前面的两段。
第一个部分是声明一个TCITEM的结构体变量,这样,就可以通过它来设置一个Tab页面的属性,首先设置mask,然后对于不同的mask,就可以用不同的成员来初始化,这样就形成了不同的标签,在使用m_tab.InsertItem函数,添加上这个标签即可。
后面的那个也是如此,只是多了一个标签而已,再次新建一个,然后添加
注意的是:InsertItem函数的话,第一个还是索引。注意到在很多的控件中,索引都是从0开始的哦。。。

最后的那个代码,不过是在资源文件中添加两个Static控件,显示文本而已,而代码只需要初始化显示一个或者两个,这部分不难。

下面就是如何实现标签的切换,点击标签的话,需要在不同的页面切换,进行响应。
根据经验也知道,应该是对于的控件的消息,对。这里就是SelChanged的消息,代码如下:
void  CTest29Dlg::OnSelchangeTab1(NMHDR *  pNMHDR, LRESULT *  pResult) 
{
    
// TODO: Add your control notification handler code here
    if(m_tab.GetCurSel() == 0){
        GetDlgItem(IDC_STATIC1)
->ShowWindow(SW_SHOW);
        GetDlgItem(IDC_STATIC2)
->ShowWindow(SW_HIDE);
    }

    
else{
        GetDlgItem(IDC_STATIC1)
->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC2)
->ShowWindow(SW_SHOW);
    }

    
*pResult = 0;
}


于是便通过获得索引,知道不同的内容来响应不同的消息

你可能感兴趣的:(Tab控件的使用(一))