资源简介
对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个文件信息
- 上一篇:软件项目管理中涉及的文档分类及作用说明
- 下一篇:人脸识别系统源代码 可运行
相关资源
- delphi 用系统自带popupmenu实现重绘
- CListCtrl控件实现Item项拖拽效果
- CListCtrl 使用演示的
- CListCtrl自绘CheckBox
- CListCtrlEx扩展列表控件
- 不规则按钮
- CListCtrl的使用
- 博客-Windows窗体原理及控件WM_DRAWITEM和
- CListCtrl重绘,内嵌按钮等控件
- ClistCtrl中集成treeCtrl
- 功能强大的ClistCtrl类 更改单元格的颜
- CEdit控件重写类CEditList,输入自动提示
- CButtonST V3.9
- 可编辑CListCtrl封装处理,含主程序
- 为CListCtrl上的每一项添加CCheckBox并响
- MFC 重绘CListCtrl、CTreeCtrl的滚动条
- CListCtrl继承类,修改行高
- CListCtrl 改变选中行的颜色
- delphi子类化-重绘按钮源码
评论
共有 条评论