資源簡介
樹形listctrl,雙擊可編輯,右鍵添加刪除,重繪表頭,設置表頭字體

代碼片段和文件信息
//?HeaderCtrlCl.cpp?:?實現文件
//
#include?“stdafx.h“
#include?“HeaderCtrlCl.h“
//?CHeaderCtrlCl
IMPLEMENT_DYNAMIC(CHeaderCtrlCl?CHeaderCtrl)
CHeaderCtrlCl::CHeaderCtrlCl()
:?m_R(171)
?m_G(199)
?m_B(235)
?m_Gradient(8)
{
m_Format?=?““;
m_Height?=?1;
m_fontHeight?=?15;
m_fontWith?=?0;
m_color?=?RGB(000);
}
CHeaderCtrlCl::~CHeaderCtrlCl()
{
}
BEGIN_MESSAGE_MAP(CHeaderCtrlCl?CHeaderCtrl)
ON_WM_PAINT()
ON_MESSAGE(HDM_LAYOUT?OnLayout)
END_MESSAGE_MAP()
//?CHeaderCtrlCl?消息處理程序
void?CHeaderCtrlCl::OnPaint()
{
CPaintDC?dc(this);?//?device?context?for?painting
//?TODO:?在此處添加消息處理程序代碼
//?不為繪圖消息調用?CHeaderCtrl::OnPaint()
int?nItem;?
nItem?=?GetItemCount();//得到有幾個單元?
for(int?i?=?0;?i {?
CRect?tRect;
GetItemRect(i&tRect);//得到Item的尺寸
int?R?=?m_RG?=?m_GB?=?m_B;
CRect?nRect(tRect);//拷貝尺寸到新的容器中?
nRect.left++;//留出分割線的地方?
//繪制立體背景?
for(int?j?=?tRect.top;j<=tRect.bottom;j++)?
{?
nRect.bottom?=?nRect.top+1;?
CBrush?_brush;?
_brush.CreateSolidBrush(RGB(RGB));//創建畫刷?
dc.FillRect(&nRect&_brush);?//填充背景?
_brush.Deleteobject();?//釋放畫刷?
R-=m_Gradient;G-=m_Gradient;B-=m_Gradient;
if?(R<0)R?=?0;
if?(G<0)G?=?0;
if?(B<0)B=?0;
nRect.top?=?nRect.bottom;?
}?
dc.SetBkMode(TRANSPARENT);
CFont?nFont?*?nOldFont;?
//dc.SetTextColor(RGB(2505050));?
dc.SetTextColor(m_color);
nFont.CreateFont(m_fontHeightm_fontWith000FALSEFALSE000000_TEXT(“宋體“));//創建字體?
nOldFont?=?dc.Selectobject(&nFont);
UINT?nFormat?=?1;
if?(m_Format[i]==‘0‘)
{
nFormat?=?DT_LEFT;
tRect.left+=3;
}
else?if?(m_Format[i]==‘1‘)
{
nFormat?=?DT_CENTER;
}
else?if?(m_Format[i]==‘2‘)
{
nFormat?=?DT_RIGHT;
tRect.right-=3;
}
TEXTMETRIC?metric;
dc.GetTextMetrics(&metric);
int?ofst?=?0;
ofst?=?tRect.Height()?-?metric.tmHeight;
tRect.OffsetRect(0ofst/2);
dc.DrawText(m_HChar[i]&tRectnFormat);
dc.Selectobject(nOldFont);?
nFont.Deleteobject();?//釋放字體?
}?
//畫頭部剩余部分
CRect?rtRect;
CRect?clientRect;
GetItemRect(nItem?-?1rtRect);
GetClientRect(clientRect);
rtRect.left?=?rtRect.right+1;
rtRect.right?=?clientRect.right;
int?R?=?m_RG?=?m_GB?=?m_B;
CRect?nRect(rtRect);
//繪制立體背景?
for(int?j?=?rtRect.top;j<=rtRect.bottom;j++)?
{?
nRect.bottom?=?nRect.top+1;?
CBrush?_brush;?
_brush.CreateSolidBrush(RGB(RGB));//創建畫刷?
dc.FillRect(&nRect&_brush);?//填充背景?
_brush.Deleteobject();?//釋放畫刷?
R-=m_Gradient;G-=m_Gradient;B-=m_Gradient;
if?(R<0)R?=?0;
if?(G<0)G?=?0;
if?(B<0)B=?0;
nRect.top?=?nRect.bottom;?
}?
}
LRESULT?CHeaderCtrlCl::OnLayout(?WPARAM?wParam?LPARAM?lParam?)
{
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?*
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3226??2012-08-09?10:28??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\HeaderCtrlCl.cpp
?????文件????????623??2009-01-15?22:06??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\HeaderCtrlCl.h
?????文件???????3031??2012-08-07?13:55??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\ReadMe.txt
?????文件????????259??2012-08-07?17:27??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\Area.png
?????文件????????634??2012-08-07?17:27??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\center.png
?????文件????????248??2012-08-07?17:27??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\collapse.png
?????文件????????263??2012-08-07?17:27??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\Expand.png
?????文件????????533??2012-08-07?17:27??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\GunCamera.png
?????文件???????3274??2012-08-07?17:27??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\GunCameral_online_play.png
?????文件???????1406??2012-08-07?17:21??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\ico\Area.ico
?????文件???????1150??2012-08-07?17:21??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\ico\center.ico
?????文件???????1150??2012-08-07?17:21??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\ico\GunCameral.ico
?????文件??????67777??2007-11-28?16:21??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\TestTreeListCtrl.ico
?????文件????????372??2012-08-07?13:55??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\res\TestTreeListCtrl.rc2
?????文件???????1010??2012-08-09?10:57??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\resource.h
?????文件????????149??2012-08-07?13:55??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\stdafx.cpp
?????文件???????1932??2012-08-07?17:09??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\stdafx.h
?????文件???????1030??2012-08-07?13:55??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\targetver.h
?????文件?????109496??2012-08-09?10:57??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrl.aps
?????文件???????1783??2012-08-07?13:55??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrl.cpp
?????文件????????505??2012-08-07?14:02??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrl.h
?????文件???????5168??2012-08-09?10:57??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrl.rc
?????文件???????6531??2012-08-09?11:21??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrl.vcproj
?????文件???????1427??2012-08-09?16:32??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrl.vcproj.XP-201105261425.Administrator.user
?????文件???????4666??2012-08-09?15:04??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrlDlg.cpp
?????文件???????1034??2012-08-09?11:47??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TestTreeListCtrlDlg.h
?????文件??????31363??2012-08-09?16:32??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TreeListCtrl.cpp
?????文件???????5818??2012-08-09?16:32??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl\TreeListCtrl.h
?????文件????????914??2012-08-07?13:55??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl.sln
????..A..H.?????53248??2012-08-09?14:42??mfc_CListCtrl中插入樹_編輯_設置表頭\TestTreeListCtrl\TestTreeListCtrl.suo
............此處省略13個文件信息
評論
共有 條評論