资源简介
通过重写Ctreectrl控件的NM_CUSTOMDRAW消息完成功能.

代码片段和文件信息
// MyTreeCtrl.cpp : 实现文件
//
#include “stdafx.h“
#include “Tree_After_Add_Icon.h“
#include “MyTreeCtrl.h“
// CMyTreeCtrl
IMPLEMENT_DYNAMIC(CMyTreeCtrl CTreeCtrl)
CMyTreeCtrl::CMyTreeCtrl()
{
}
CMyTreeCtrl::~CMyTreeCtrl()
{
}
BEGIN_MESSAGE_MAP(CMyTreeCtrl CTreeCtrl)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW &CMyTreeCtrl::OnNMCustomdraw)
END_MESSAGE_MAP()
// CMyTreeCtrl 消息处理程序
void CMyTreeCtrl::OnNMCustomdraw(NMHDR *pNMHDR LRESULT *pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast(pNMHDR);
if ( NULL == pLVCD )
return;
*pResult = CDRF_DODEFAULT;
*pResult |= CDRF_NOTIFYITEMDRAW;
*pResult |= CDRF_NOTIFYSUBITEMDRAW;
*pResult |= CDRF_NOTIFYPOSTPAINT;
const DWORD dwDrawStage = pLVCD->nmcd.dwDrawStage;
if ( dwDrawStage != CDDS_ITEMPOSTPAINT )
return;
// 界面重绘,树节点后添加图标
HTREEITEM hItem = (HTREEITEM)pLVCD->nmcd.dwItemSpec;
NodeInfo* pNodeInfo = (NodeInfo*)GetItemData(hItem);
if ( NULL == pNodeInfo )
return;
// 根节点直接返回
if ( 1 == pNodeInfo->m_NodeType )
return;
// 不显示图标,直接返回
if ( !pNodeInfo->bImage )
return;
CRect textRect;
GetItemRect( hItem &textRect TRUE );
CDC* pDC = CDC::FromHandle( pLVCD->nmcd.hdc );
// 为每个条目添加图标
DrawItemImage(pDC textRect);
}
// 为每个条目添加图标
void CMyTreeCtrl::DrawItemImage( CDC* pOrigDC CRect origRect )
{
// 画图采用双缓冲
CDC memDC;
memDC.CreateCompatibleDC(pOrigDC);
// 加载.bmp格式图片
CBitmap bitmap;
bitmap.LoadBitmap(IDB_SMILE_BITMAP);
// 选择图片对象
memDC.Selectobject(&bitmap);
// 位图长宽获取
BITMAP bmInfo;
bitmap.Getobject(sizeof(BITMAP) &bmInfo);
// 输出图片
pOrigDC->BitBlt( origRect.right origRect.top bmInfo.bmWidth bmInfo.bmHeight &memDC 0 0 SRCCOPY );
// 绘图完成后的清理
bitmap.Deleteobject();
// 删除DC
memDC.DeleteDC();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1953 2014-10-28 13:59 Tree_After_Add_Icon\Tree_After_Add_Icon\MyTreeCtrl.cpp
文件 593 2014-10-28 13:59 Tree_After_Add_Icon\Tree_After_Add_Icon\MyTreeCtrl.h
文件 3107 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\ReadMe.txt
文件 822 2014-10-28 13:43 Tree_After_Add_Icon\Tree_After_Add_Icon\res\Smile.bmp
....... 21630 2003-07-24 09:52 Tree_After_Add_Icon\Tree_After_Add_Icon\res\Tree_After_Add_Icon.ico
文件 375 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\res\Tree_After_Add_Icon.rc2
文件 782 2014-10-28 13:44 Tree_After_Add_Icon\Tree_After_Add_Icon\resource.h
文件 150 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\stdafx.cpp
文件 1796 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\stdafx.h
文件 1030 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\targetver.h
文件 60016 2014-10-28 13:44 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_Icon.aps
文件 1816 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_Icon.cpp
文件 519 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_Icon.h
文件 5569 2014-10-28 13:44 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_Icon.rc
文件 5797 2014-10-28 13:43 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_Icon.vcproj
文件 1427 2014-11-01 08:51 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_Icon.vcproj.39ZI0P9277FY1K7.Administrator.user
文件 5508 2014-10-29 14:29 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_IconDlg.cpp
文件 825 2014-10-28 13:47 Tree_After_Add_Icon\Tree_After_Add_Icon\Tree_After_Add_IconDlg.h
文件 923 2014-10-28 13:39 Tree_After_Add_Icon\Tree_After_Add_Icon.sln
..A..H. 15360 2014-11-01 08:51 Tree_After_Add_Icon\Tree_After_Add_Icon.suo
目录 0 2014-10-28 13:43 Tree_After_Add_Icon\Tree_After_Add_Icon\res
目录 0 2014-11-01 08:51 Tree_After_Add_Icon\Tree_After_Add_Icon
目录 0 2014-11-01 08:51 Tree_After_Add_Icon
----------- --------- ---------- ----- ----
129998 23
- 上一篇:STM32库函数助手
- 下一篇:windows 1.02 软盘镜像
相关资源
- 基于MFC扩展CListCtrl子项显示图片并叠
- Windows异步套接字网络编程
- 黑白棋(带简单AI)
- VC 获得文件属性 获取文件的创建时
- 基于MVC模式的会员管理系统
- silicon lab公司的收音IC SI47XX全套开发工
- 读者写者问题(读者优先,写者优先
- MFC程序-碰撞的小球
- vc 柱形图 CBarChart
- 用vc 写的导线测量,针对刚学测绘的
- 用VC 编写的仿QQ聊天室程序源代码
- 栅栏填充算法源码(VC)
-
Cme
taFileDC的使用示例 - ado数据库MFC图书管理系统vs2010
- mfc单文档窗体画线与写字
- 简单的房屋租赁系统
- .net网站服装销售系统(MVC)
- [免费]MFC制作目录树
-
ob
jectARX给Auto CAD加工具条 - MFC读三维模型obj文件
- blowfish的vc2008工程.rar
- 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- capon波束形成算法-VC实现
- 读取串口数据并画实时曲线的VC 程序
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- c 程序判断离散数学中命题公式
- MFC控件动态拖动
- vc 6.0开发的流程图编辑器
评论
共有 条评论