資源簡介
非常漂亮的樹列表,表頭經過重繪可以設置你需要的顏色,讓那些系統默認的顏色說再見吧。列表單元也可以根據需要選擇你所要的顏色。

代碼片段和文件信息
//?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源碼
評論
共有 條評論