www.pudn.com > SkinListCtrl.zip > SkinHeaderCtrl.cpp


// SkinHeaderCtrl.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "SkinList.h" 
#include "SkinHeaderCtrl.h" 
#include "memdc.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CSkinHeaderCtrl 
 
CSkinHeaderCtrl::CSkinHeaderCtrl() 
{ 
} 
 
CSkinHeaderCtrl::~CSkinHeaderCtrl() 
{ 
} 
 
 
BEGIN_MESSAGE_MAP(CSkinHeaderCtrl, CHeaderCtrl) 
	//{{AFX_MSG_MAP(CSkinHeaderCtrl) 
	ON_WM_PAINT() 
	ON_WM_ERASEBKGND() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CSkinHeaderCtrl message handlers 
 
void CSkinHeaderCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{ 
	 
} 
 
void CSkinHeaderCtrl::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	CRect rect, rectItem, clientRect; 
	GetClientRect(&rect); 
	GetClientRect(&clientRect); 
	CMemDC memDC(&dc, rect); 
	CDC bitmapDC; 
	bitmapDC.CreateCompatibleDC(&dc); 
	 
	memDC.FillSolidRect(&rect, RGB(76,85,118)); 
 
	CBitmap bitmapSpan; 
	bitmapSpan.LoadBitmap(IDB_COLUMNHEADER_SPAN); 
	CBitmap* pOldBitmapSpan = bitmapDC.SelectObject(&bitmapSpan); 
 
	memDC.StretchBlt(rect.left+2, 0, rect.Width(), 12, &bitmapDC, 0, 0, 1, 12, SRCCOPY); 
 
	bitmapDC.SelectObject(pOldBitmapSpan); 
	bitmapSpan.DeleteObject(); 
	 
	int nItems = GetItemCount(); 
 
	CBitmap bitmap; 
	CBitmap bitmap2; 
	CBitmap bitmap3; 
	 
	bitmap.LoadBitmap(IDB_COLUMNHEADER_START); 
	bitmap2.LoadBitmap(IDB_COLUMNHEADER_SPAN); 
	bitmap3.LoadBitmap(IDB_COLUMNHEADER_END); 
 
	for(int i = 0; i