資源簡介
MFC重繪CListCtrl的scrollbar,headerctrl和items的代碼.用于MFC的UI的設(shè)計。

代碼片段和文件信息
//?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(7685118));
CBitmap?bitmapSpan;
bitmapSpan.LoadBitmap(IDB_COLUMNHEADER_SPAN);
CBitmap*?pOldBitmapSpan?=?bitmapDC.Selectobject(&bitmapSpan);
for(int?v=0;?v {
memDC.BitBlt((rect.left+2)+(v*1)?0?1?12?&bitmapDC00SRCCOPY);
}
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? {
TCHAR?buf1[256];
HD_ITEM?hditem1;
hditem1.mask?=?HDI_TEXT?|?HDI_FORMAT?|?HDI_ORDER;
hditem1.pszText?=?buf1;
hditem1.cchTextMax?=?255;
GetItem(?i?&hditem1?);
GetItemRect(i?&rect);
CBitmap*?pOldBitmap?=?NULL;
//make?sure?we?draw?the?start?piece
//on?the?first?item?so?it?has?a?left?border
//For?the?following?items?we?will?just?use?the
//right?border?of?the?previous?items?as?the?left
//border
if(hditem1.iOrder==0)
{
pOldBitmap?=?bitmapDC.Selectobject(&bitmap);
memDC.BitBlt(rect.leftrect.top212&bitmapDC00SRCCOPY);
}
else
{
memDC.BitBlt(rect.left-1rect.top212&bitmapDC00SRCCOPY);
pOldBitmap?=?bitmapDC.Selectobject(&bitmap2);
memDC.BitBlt(rect.left+1rect.top112&bitmapDC00SRCCOPY);
}
bitmapDC.Selectobject(pOldBitmap);
//span?the?bitmap?for?the?width?of?the?column?header?item
int?nWidth?=?rect.Width()?-?4;
CBitmap*?pOldBitmap2?=?bitmapDC.Selectobject(&bitmap2);
for(int?v=0;?v {
memDC.BitBlt((rect.left+2)+(v*1)?0?1?12?&bitmapDC00SRCCOPY);
}
bitmapDC.Selectobject(pOldBitmap2);
//draw?the?end?piece?of?the?column?header
CBitmap*?pOldBitmap3?=?bitmapDC.Selectobject(&bitmap3);
memDC.BitBlt((rect.right
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2003-08-14?21:39??SkinList_demo\SkinListDone\
?????文件????????1087??1999-11-14?20:04??SkinList_demo\SkinListDone\MEMDC.H
?????文件????????3615??2003-07-01?00:01??SkinList_demo\SkinListDone\ReadMe.txt
?????目錄???????????0??2003-08-14?19:14??SkinList_demo\SkinListDone\res\
?????文件?????????150??2003-07-01?00:08??SkinList_demo\SkinListDone\res\ColumnHeaderEnd.bmp
?????文件?????????102??2003-07-01?00:08??SkinList_demo\SkinListDone\res\ColumnHeaderSpan.bmp
?????文件?????????150??2003-07-01?00:08??SkinList_demo\SkinListDone\res\ColumnHeaderStart.bmp
?????文件????????1014??2003-07-08?20:16??SkinList_demo\SkinListDone\res\HorizontalScrollBarLeftArrow.bmp
?????文件????????1014??2003-07-08?20:16??SkinList_demo\SkinListDone\res\HorizontalScrollBarRightArrow.bmp
?????文件?????????102??2003-07-08?20:16??SkinList_demo\SkinListDone\res\HorizontalScrollBarSpan.bmp
?????文件????????1014??2003-07-25?11:23??SkinList_demo\SkinListDone\res\HorizontalScrollBarThumb.bmp
?????文件??????????70??2003-07-24?19:11??SkinList_demo\SkinListDone\res\ListCtrl_Tile.bmp
?????文件????????1078??2003-07-01?00:01??SkinList_demo\SkinListDone\res\SkinList.ico
?????文件?????????400??2003-07-01?00:01??SkinList_demo\SkinListDone\res\SkinList.rc2
?????文件?????????450??2003-07-25?09:25??SkinList_demo\SkinListDone\res\VerticleScrollbarBottom.bmp
?????文件?????????990??2003-07-16?20:19??SkinList_demo\SkinListDone\res\VerticleScrollBarDownArrow.bmp
?????文件??????????90??2003-07-16?20:19??SkinList_demo\SkinListDone\res\VerticleScrollBarSpan.bmp
?????文件?????????990??2003-07-25?07:28??SkinList_demo\SkinListDone\res\VerticleScrollBarThumb.bmp
?????文件?????????450??2003-07-24?20:48??SkinList_demo\SkinListDone\res\VerticleScrollbarTop.bmp
?????文件?????????990??2003-07-16?20:19??SkinList_demo\SkinListDone\res\VerticleScrollBarUpArrow.bmp
?????文件????????1645??2003-07-25?11:23??SkinList_demo\SkinListDone\resource.h
?????文件????????4292??2003-08-14?19:20??SkinList_demo\SkinListDone\SkinHeaderCtrl.cpp
?????文件????????1261??2003-07-16?16:57??SkinList_demo\SkinListDone\SkinHeaderCtrl.h
?????文件????????6872??2003-07-27?14:26??SkinList_demo\SkinListDone\SkinHorizontalScrollbar.cpp
?????文件????????1809??2003-07-26?17:03??SkinList_demo\SkinListDone\SkinHorizontalScrollbar.h
?????文件???????48732??2003-08-14?19:42??SkinList_demo\SkinListDone\SkinList.aps
?????文件????????2672??2003-08-14?21:37??SkinList_demo\SkinListDone\SkinList.clw
?????文件????????2093??2003-08-14?19:18??SkinList_demo\SkinListDone\SkinList.cpp
?????文件????????6435??2003-07-24?21:37??SkinList_demo\SkinListDone\SkinList.dsp
?????文件?????????541??2003-07-23?23:10??SkinList_demo\SkinListDone\SkinList.dsw
?????文件????????1346??2003-07-01?00:01??SkinList_demo\SkinListDone\SkinList.h
............此處省略14個文件信息
評論
共有 條評論