改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景(二)
覆盖基类InsertColumn进行列信息保存
01.
int
CListCtrlCl::InsertColumn(
int
nCol,
LPCTSTR
lpszColumnHeading,
02.
int
nFormat
,
03.
int
nWidth
,
04.
int
nSubItem
)
05.
{
06.
m_Header.m_HChar.Add(lpszColumnHeading);
07.
if
(nFormat==LVCFMT_LEFT)
08.
{
09.
m_Header.m_Format
= m_Header.m_Format +
"0"
;
10.
}
11.
else
if
(nFormat==LVCFMT_CENTER)
12.
{
13.
m_Header.m_Format
= m_Header.m_Format +
"1"
;
14.
}
15.
else
if
(nFormat==LVCFMT_RIGHT)
16.
{
17.
m_Header.m_Format
= m_Header.m_Format +
"2"
;
18.
}
19.
else
20.
{
21.
m_Header.m_Format
= m_Header.m_Format +
"1"
;
22.
}
23.
return
CListCtrl::InsertColumn(nCol,lpszColumnHeading,nFormat,nWidth,nSubItem);
24.
}
二、运行效果图如下:
三、使用方法
把HeaderCtrlCl.h, HeaderCtrlCl.cpp, ListCtrlCl.h, ListCtrlCl.cpp添加到你的工程中,在拖一个CListCtrl控件到对话框上,添加成员变量,然后在头文件中#include “ListCtrlCl.h”,把刚添加的成员变量类型改为 CListCtrlCl ,在对话框的OnInitDialog()中添加初始化代码:
01.
m_ListCtrl.SetColColor(0,RGB(10,150,20));
//设置列背景色
02.
m_ListCtrl.SetColColor(2,RGB(30,100,90));
//设置列背景色
03.
m_ListCtrl.SetBkColor(RGB(50,10,10));
//设置背景色
04.
m_ListCtrl.SetItemColor(1,1,RGB(100,100,10));
//设置指定单元背景色
05.
m_ListCtrl.SetRowHeigt(25);
//设置行高度
06.
m_ListCtrl.SetHeaderHeight(1.5);
//设置头部高度
07.
m_ListCtrl.SetHeaderFontHW(16,0);
//设置头部字体高度,和宽度,0表示缺省,自适应
08.
m_ListCtrl.SetHeaderTextColor(RGB(255,200,100));
//设置头部字体颜色
09.
m_ListCtrl.SetTextColor(RGB(0,255,255));
//设置文本颜色
10.
m_ListCtrl.SetHeaderBKColor(100,255,100,8);
//设置头部背景色
11.
m_ListCtrl.SetFontHW(15,0);
//设置字体高度,和宽度,0表示缺省宽度
12.
m_ListCtrl.SetColTextColor(2,RGB(255,255,100));
//设置列文本颜色
13.
m_ListCtrl.SetItemTextColor(3,1,RGB(255,0,0));
//设置单元格字体颜色