• 大小: 85KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-31
  • 语言: 其他
  • 标签: 树列表  vc++  

资源简介

非常漂亮的树列表,表头经过重绘可以设置你需要的颜色,让那些系统默认的颜色说再见吧。列表单元也可以根据需要选择你所要的颜色。

资源截图

代码片段和文件信息

// 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


评论

共有 条评论