• 大小: 87KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C/C++
  • 标签: MFC  ListCtrl  UI  

资源简介

MFC重绘CListCtrl的scrollbar,headerctrl和items的代码.用于MFC的UI的设计。

资源截图

代码片段和文件信息

// 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个文件信息

评论

共有 条评论