资源简介
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个文件信息
- 上一篇:mfc渐变进度条
- 下一篇:c语言程序设计关于教师工作量管理系统
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- 基于Arduino的MLX90614温度采集程序
- Arduino 敲琴MIDI电子琴 程序报告.docx
- 基于arduino的红绿灯程序,包附原理图
- arduino I2C设备扫描并串口返回地址(
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
-
Google C++ st
yle Guide - LVGL 英文参考手册
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- Arduino程序(.ino)
- Arduino-LM35-LCD1602数字温度计实验.doc
- C++Builder XE7 update1 和谐文件亲测可用
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- C++17 The Complete Guide
评论
共有 条评论