資源簡(jiǎn)介
對(duì)CListCtrl控件的重繪,包括編輯SubItem、更改行背景顏色字體等功能超多...
具體功能請(qǐng)參見(jiàn)以下博客內(nèi)容:http://blog.csdn.net/dongdan_002/article/details/41895885
互相學(xué)習(xí),好資源大家都要共享哦!

代碼片段和文件信息
//?MyHeadCtrl.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“MyHeadCtrl.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CMyHeadCtrl
CMyHeadCtrl::CMyHeadCtrl()
{
m_nGradient=0; //默認(rèn)不繪制立體列頭
m_fHeight=1.5; //默認(rèn)列頭高度是一倍數(shù)
m_pFont=NULL;
m_nDown=-1;
m_nUp=-1;
m_offset=1;
m_nFont=0;
m_nFontSize=0;
m_pColFont=NULL;
}
CMyHeadCtrl::~CMyHeadCtrl()
{
if(m_pFont!=NULL)
{
delete?m_pFont;
m_pFont=NULL;
}
if(m_pColFont!=NULL)
{
delete[]?m_pColFont;
m_pColFont=NULL;
}
}
BEGIN_MESSAGE_MAP(CMyHeadCtrl?CHeaderCtrl)
//{{AFX_MSG_MAP(CMyHeadCtrl)
ON_WM_PAINT()
ON_WM_ACTIVATE()
ON_WM_LBUTTONDOWN()
ON_MESSAGE(HDM_LAYOUT?OnLayout)
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CMyHeadCtrl?message?handlers
void?CMyHeadCtrl::OnPaint()?
{
CPaintDC?dc(this);?//?device?context?for?painting
//?TODO:?在此處添加消息處理程序代碼
//?不為繪圖消息調(diào)用?CHeaderCtrl::OnPaint()
int?nItem;
CBrush?_brush;
nItem?=?GetItemCount();//得到有幾個(gè)單元
for(DWORD?i?=?0;?i<(DWORD)nItem;i?++)?
{?
CRect?tRect;
int?RGB;
GetItemRect(i&tRect);//得到Item的尺寸
HEADCELL*?pHead=FindHeadCell(i);
if(pHead)
{
R?=?GetRValue(pHead->rgbBack);
G?=?GetGValue(pHead->rgbBack);
B?=?GetBValue(pHead->rgbBack);
}
else
{
R?=?212;
G?=?208;
B?=?200;
}
CRect?nRect(tRect);//拷貝尺寸到新的容器中?
nRect.left++;//留出分割線的地方?
//繪制立體背景
if(m_nGradient>0)
{
for(int?j?=?tRect.top;j<=tRect.bottom;j++)?
{?
nRect.top=j;
nRect.bottom?=?nRect.top+1;
CBrush?_brush;?
_brush.CreateSolidBrush(RGB(RGB));//創(chuàng)建畫刷?
dc.FillRect(&nRect&_brush);?//填充背景?
_brush.Deleteobject();?//釋放畫刷?
R-=m_nGradient;G-=m_nGradient;B-=m_nGradient;
if?(R<0)R?=?0;
if?(G<0)G?=?0;
if?(B<0)B?=?0;
}
}
else
{
CRect?rect=nRect;
CBrush?brush;
brush.CreateSolidBrush(RGB(RGB));
rect.left-=1;
rect.right+=1;
rect.top-=1;
dc.FillRect(&rect&brush);
dc.DrawEdge(&rectBDR_RAISEDINNER?|?EDGE_RAISED?BF_RECT);
}
////////////////////////////////////////////////////////////
if(i==(DWORD)m_nDown)
{
CRect?rect=nRect;
CBrush?brush;
brush.CreateSolidBrush(RGB(RGB));
rect.left-=1;
rect.right+=1;
rect.top-=1;
dc.FillRect(&rect&brush);
dc.DrawEdge(&rectBDR_SUNKENOUTER?|?EDGE_SUNKEN?BF_RECT);
m_nDown=-1;
}
if(i==(DWORD)m_nUp)
{
CRect?rect=nRect;
CBrush?brush;
brush.CreateSolidBrush(RGB(RGB));
rect.left-=1;
rect.right+=1;
rect.top-=1;
dc.FillRect(&rect&brush);
dc.DrawEdge(&rectBDR_RAISEDINNER?|?EDGE_RAISED?BF_RECT);
m_nUp=-1;
}
//繪制文本顏色和文本
dc.SetBkMode(TRANSPARENT);
CFont?*pOldFont=NULL;
if(
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????7659??2011-08-19?11:19??TestCMyListCtrl\MyHeadCtrl.cpp
?????文件???????2205??2011-08-19?11:24??TestCMyListCtrl\MyHeadCtrl.h
?????文件??????48622??2014-12-12?16:23??TestCMyListCtrl\MyListCtrl.cpp
?????文件??????11650??2011-08-08?09:31??TestCMyListCtrl\MyListCtrl.h
?????文件???????3741??2011-08-19?11:21??TestCMyListCtrl\ReadMe.txt
?????文件???????1286??2011-08-19?11:33??TestCMyListCtrl\res\check_0.bmp
?????文件???????1286??2011-08-19?11:33??TestCMyListCtrl\res\check_1.bmp
?????文件???????1078??2011-08-19?11:21??TestCMyListCtrl\res\TestCMyListCtrl.ico
?????文件????????407??2011-08-19?11:21??TestCMyListCtrl\res\TestCMyListCtrl.rc2
?????文件????????783??2011-08-19?11:33??TestCMyListCtrl\Resource.h
?????文件????????217??2011-08-19?11:21??TestCMyListCtrl\StdAfx.cpp
?????文件???????1054??2011-08-19?11:24??TestCMyListCtrl\StdAfx.h
?????文件??????25120??2014-12-12?11:09??TestCMyListCtrl\TestCMyListCtrl.aps
?????文件???????1178??2011-08-19?13:14??TestCMyListCtrl\TestCMyListCtrl.clw
?????文件???????2189??2011-08-19?11:21??TestCMyListCtrl\TestCMyListCtrl.cpp
?????文件???????4721??2011-08-19?13:15??TestCMyListCtrl\TestCMyListCtrl.dsp
?????文件????????555??2011-08-19?11:21??TestCMyListCtrl\TestCMyListCtrl.dsw
?????文件???????1423??2011-08-19?11:21??TestCMyListCtrl\TestCMyListCtrl.h
?????文件??????66560??2011-08-19?13:15??TestCMyListCtrl\TestCMyListCtrl.ncb
?????文件??????49664??2011-08-19?13:15??TestCMyListCtrl\TestCMyListCtrl.opt
?????文件????????995??2011-08-19?13:14??TestCMyListCtrl\TestCMyListCtrl.plg
?????文件???????5608??2011-08-19?13:14??TestCMyListCtrl\TestCMyListCtrl.rc
?????文件????????896??2014-12-12?10:04??TestCMyListCtrl\TestCMyListCtrl.sln
????..A..H.?????17920??2014-12-12?16:29??TestCMyListCtrl\TestCMyListCtrl.suo
?????文件???????8125??2014-12-12?10:03??TestCMyListCtrl\TestCMyListCtrl.vcxproj
?????文件???????2560??2014-12-12?10:03??TestCMyListCtrl\TestCMyListCtrl.vcxproj.filters
?????文件????????143??2014-12-12?10:03??TestCMyListCtrl\TestCMyListCtrl.vcxproj.user
?????文件???????5866??2014-12-12?16:26??TestCMyListCtrl\TestCMyListCtrlDlg.cpp
?????文件???????1540??2014-12-12?11:26??TestCMyListCtrl\TestCMyListCtrlDlg.h
?????目錄??????????0??2011-08-19?11:21??TestCMyListCtrl\res
............此處省略4個(gè)文件信息
評(píng)論
共有 條評(píng)論