资源简介
非常漂亮的树列表,表头经过重绘可以设置你需要的颜色,让那些系统默认的颜色说再见吧。列表单元也可以根据需要选择你所要的颜色。
代码片段和文件信息
// HeaderCtrlEx.cpp : implementation file
//
#include “stdafx.h“
#include “HeaderCtrlEx.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHeaderCtrlEx
CHeaderCtrlEx::CHeaderCtrlEx()
{
m_clr = RGB(100 100 30);
m_clrText = RGB(255 0 0);
m_height = 20;
m_align = DT_CENTER | DT_VCENTER | DT_SINGLELINE;
m_nLineWidth = 1;
m_bState = TRUE;
}
CHeaderCtrlEx::~CHeaderCtrlEx()
{
}
BEGIN_MESSAGE_MAP(CHeaderCtrlEx CHeaderCtrl)
//{{AFX_MSG_MAP(CHeaderCtrlEx)
ON_WM_PAINT()
//}}AFX_MSG_MAP
ON_MESSAGE(HDM_LAYOUT OnLayout)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHeaderCtrlEx message handlers
LRESULT CHeaderCtrlEx::OnLayout( WPARAM wParam LPARAM lParam )
{
LRESULT lResult;
lResult = CHeaderCtrl::DefWindowProc(HDM_LAYOUT 0 lParam);
HD_LAYOUT &hdl = *( HD_LAYOUT * ) lParam;
RECT *prc = hdl.prc;
WINDOWPOS *pwpos = hdl.pwpos;
//表头高度为原来1.5倍,如果要动态修改表头高度的话,将1.5设成一个全局变量
//int nHeight = (int)(pwpos->cy * 1.5);
pwpos->cy = m_height;
prc->top = m_height;
return lResult;
}
void CHeaderCtrlEx::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CHeaderCtrl::OnPaint() for painting messages
dc.SetBkMode(TRANSPARENT);
UINT nItem = GetItemCount();//得到有几个单元
for(UINT i=0; i {
CRect Rect;
GetItemRect(i &Rect);//得到Item的尺寸
//Rect.bottom += 20;
HDITEM hdi;
TCHAR lpBuffer[256] = {0};
hdi.mask = HDI_TEXT;
hdi.pszText = lpBuffer;
hdi.cchTextMax = 256;
GetItem(i &hdi);
CString strText = lpBuffer;
Rect.left += m_nLineWidth;//留出分割线的地方
CBrush _brush;
if (i == 0 && m_bState)
{
_brush.CreateSolidBrush(RGB(200200200));//创建画刷
}
else if (i==1 || i==2)
{
_brush.CreateSolidBrush(RGB(0200200));//创建画刷
}
dc.FillRect(&Rect&_brush); //填充背景
_brush.Deleteobject(); //释放画刷
CFont nFont *pOldFont;
dc.SetTextColor(m_clrText);
nFont.CreateFontIndirect(&m_logfont);//创建字体
pOldFont = dc.Selectobject(&nFont);
dc.DrawText(lpBuffer &Rect m_align);
dc.Selectobject(pOldFont);
}
//画头部剩余部分
// CRect rtRect;
// CRect clientRect;
// GetItemRect(nItem - 1rtRect);
// GetClientRect(clientRect);
// rtRect.left = rtRect.right + m_nLineWidth;
// rtRect.right = clientRect.right;
// CRect nRect(rtRect);
// //绘制立体背景
// CBrush _brush;
// _brush.CreateSolidBrush(m_clr);//创建画刷
// dc.FillRect(&nRect&_brush); //填充背景
// _brush.Deleteobject(); //释放画刷
}
BOOL CHeaderCtrlEx::Create(LPCTSTR lpszClassName LPCTSTR lpszWindowName DWORD dwstyle const RECT& rect CWnd* pParentWnd UINT nID CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3234 2011-08-25 18:11 TreeList\HeaderCtrlEx.cpp
文件 2091 2011-08-25 18:11 TreeList\HeaderCtrlEx.h
文件 4146 2007-01-16 17:42 TreeList\ReadMe.txt
文件 1270 2007-01-16 20:04 TreeList\res\falgs.bmp
文件 766 2007-01-16 21:20 TreeList\res\TreeList.ico
文件 424 2007-01-16 17:42 TreeList\res\TreeList.rc2
文件 2203 2011-08-23 20:35 TreeList\resource.h
文件 222 2007-01-16 17:55 TreeList\StdAfx.cpp
文件 1142 2007-01-16 17:49 TreeList\StdAfx.h
文件 41012 2011-08-23 20:35 TreeList\TreeList.aps
文件 1274 2007-02-14 18:58 TreeList\TreeList.cpp
文件 4733 2011-08-25 19:06 TreeList\TreeList.dsp
文件 567 2007-01-16 17:42 TreeList\TreeList.dsw
文件 1121 2007-01-16 17:56 TreeList\TreeList.h
文件 99328 2011-09-13 09:37 TreeList\TreeList.ncb
文件 55808 2011-09-13 09:37 TreeList\TreeList.opt
文件 1597 2011-08-30 15:56 TreeList\TreeList.plg
文件 10615 2011-08-23 20:35 TreeList\TreeList.rc
文件 10749 2011-08-25 16:28 TreeList\TreeListCtrl.cpp
文件 9112 2011-08-25 16:28 TreeList\TreeListCtrl.h
文件 16837 2011-08-30 15:56 TreeList\TreeListDlg.cpp
文件 2485 2011-08-25 16:31 TreeList\TreeListDlg.h
文件 206850 2011-08-24 19:34 TreeList\TreeListWnd.cpp
文件 11938 2007-01-16 21:24 TreeList\TreeListWnd.h
目录 0 2007-02-14 19:12 TreeList\res
目录 0 2011-09-13 09:37 TreeList
----------- --------- ---------- ----- ----
489524 26
- 上一篇:点对点的FTP文件传输
- 下一篇:数字逻辑 课程设计 篮球计时器 VHDL源码
评论
共有 条评论