随笔-145  评论-173  文章-70  trackbacks-0

在Tab控件中,每一个标签页都可以有一个图像,形成一个标签页上面带有Icon特征的属性。
如何实现呢?
需要用到一个新的类ImageList。在使用之前,还是需要添加两个成员,一个是m_tab,一个是m_imagelist
当然,从名字可以看出他们的类型,一个和tab控件关联,一个是imageList类型。

然后添加初始代码:

    m_imagelist.Create(24,24,ILC_COLOR24|ILC_MASK,1,0);
    m_imagelist.Add(AfxGetApp()
->LoadIcon(IDI_ICON1));
    m_imagelist.Add(AfxGetApp()
->LoadIcon(IDI_ICON2));
    m_tab.SetImageList(
&m_imagelist);
===============================================
    m_tab.InsertItem(
0,"标签1",0);
    m_tab.InsertItem(
1,"标签2",1);
    

 

前面的一部分是创建imageList类型的对象,我们知道,很多的类虽然你声明了,可是要调用创建的函数来初始化,这个在前面的Edit控件等等都有叙述,调用Create函数的时候,需要查API资料,看看那些参数并设置。
后面的两句就是添加一个icon近期,如何做呢?前面有很好的例子,生成的代码中,我们常常看到:
AfxGetApp()->LoadIcon(IDI_ICON1)
其中的AfxGetApp()是很常见的,表示的是就是整个MFC程序的一个主实例的指针,然后通过它来导入icon,生成icon对象后,就可以自然的放入到list中调用add函数。

生成完后,仅仅只是创建了,而没有和tab控件关联,所以需要调用SetImageList函数来关联起来。

然后,就是添加标签了。这一步比较简单,当然,没有前面那么繁杂,前面的做法是创建一个TCITEM的结构体,然后赋值,这里仅仅需要放入名字就可以了。我的理解是,因为名字,即字符串,就是一个指针,于是,就是相当于前面的那些做法,只不过这里指针顺带赋值了而已,于是才有了这个简单的做法。

最后的参数多了一个,因为InsertItem这个函数可以重载,于是,就完成了基本的操作!
posted on 2010-02-08 13:59 deercoder 阅读(937) 评论(0)  编辑 收藏 引用

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