改变 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.returnCListCtrl::InsertColumn(nCol,lpszColumnHeading,nFormat,nWidth,nSubItem);
24.}

二、运行效果图如下:

改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景(二)


三、使用方法

把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));  //设置单元格字体颜色