资源简介

对CListCtrl控件的重绘,包括编辑SubItem、更改行背景颜色字体等功能超多... 具体功能请参见以下博客内容:http://blog.csdn.net/dongdan_002/article/details/41895885 互相学习,好资源大家都要共享哦!

资源截图

代码片段和文件信息

// 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; //默认不绘制立体列头
m_fHeight=1.5; //默认列头高度是一倍数
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: 在此处添加消息处理程序代码
// 不为绘图消息调用 CHeaderCtrl::OnPaint()
int nItem;
CBrush _brush;
nItem = GetItemCount();//得到有几个单元
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));//创建画刷 
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(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       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个文件信息

评论

共有 条评论