随笔-145  评论-173  文章-70  trackbacks-0
功能:在两个标签页中显示两个不同的内容。标签页的内容也需要设置。

说明:添加控件的时候,可能会显示是多个标签页,但是如果不添加任何代码的话,就会显示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;
}


于是便通过获得索引,知道不同的内容来响应不同的消息
posted on 2010-02-07 12:30 deercoder 阅读(1272) 评论(2)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理