首页 理论教育自绘列表控件,实现带彩色背景

自绘列表控件,实现带彩色背景

【摘要】:自绘列表控件,不但可以按行作不同的绘制,还可以按列作不同的绘制。打开本章第6节的“Si”工程,本节将继续开发支持自绘的列表控件类,实现带彩色背景的列表控件。1)在类视图中新建一个列表控件的派生类,如图10-40所示。7)在主对话框类的头文件中,直接手动改写列表控件的关联变量为CColorList类型,如图10-41所示。通过对列表控件自绘,进一步加强了列表控件的美化效果,各行列表项显示不同的彩色背景。

自绘列表控件,不但可以按行作不同的绘制,还可以按列作不同的绘制。

打开本章第6节的“Si”工程,本节将继续开发支持自绘的列表控件类,实现带彩色背景的列表控件。

1)在类视图中新建一个列表控件的派生类,如图10-40所示。

978-7-111-46378-8-Chapter10-83.jpg

图10-40 通过右键菜单添加新类

2)在建立好的组合控件类头文件中,添加一些成员变量和成员函数。

978-7-111-46378-8-Chapter10-84.jpg

978-7-111-46378-8-Chapter10-85.jpg

3)在源文件(ColorList.cpp)中修改构造函数代码。

978-7-111-46378-8-Chapter10-86.jpg

4)在源文件中编写背景填充函数的代码。

978-7-111-46378-8-Chapter10-87.jpg

5)在源文件中编写图标绘制函数的代码。

978-7-111-46378-8-Chapter10-88.jpg

6)在源文件中,重写自绘虚函数的代码。(www.chuimin.cn)

978-7-111-46378-8-Chapter10-89.jpg

7)在主对话框类的头文件中,直接手动改写列表控件的关联变量为CColorList类型,如图10-41所示。

978-7-111-46378-8-Chapter10-90.jpg

图10-41 修改列表控件的关联变量

8)注意要在主对话框类的头文件中,包含自绘控件类的头文件。

978-7-111-46378-8-Chapter10-91.jpg

9)在OnColumnclickList函数中添加一行代码,在自绘类内设置排序列的索引,如图10-42所示。

978-7-111-46378-8-Chapter10-92.jpg

图10-42 添加一行代码

10)编译并运行,测试代码,如图10-43所示。

通过对列表控件自绘,进一步加强了列表控件的美化效果,各行列表项显示不同的彩色背景。当单击列的标头后,排序列的背景比其他列稍变暗,这是模仿Windows资源管理器的排序列的效果。

978-7-111-46378-8-Chapter10-93.jpg

图10-43 查看运行结果