资源简介
通过重写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 软盘镜像
相关资源
- spring-mvc-4.0.xsd
- 绘制拓扑图
- Windows 10_MTK VCOM USB Preloader Drivers.zip
- Visual Studio.Net 2003 简体中文企业版
- RHVCA RH318 红帽企业级虚拟化管理 课程
- 用VC实现小型矢量图形系统的开发
- msvcrtd dll 32位 64位
- svcutil.exe
- 冒险岛吸怪无敌 源码
- VC实现从TXT文件中读取数值型数据
- 介绍了一种基于DSP芯片TMS320VC5509A 并采
- VC HTTP请求 GET POST
- vcruntime140_1.zip
- maven+springmvc+mybatis+ajax实现增删查改和
- 图像亮度调整源代码
- 高斯平滑源代码
- EVC中直接加载位图文件
- springMVC的增删改查
- spring+springmvc+Mybatis登陆的
- 在VisualC_中利用COM实现对Word的调用
- opengl下的贪吃蛇
- qualnet编译说明
- STM32F103VCT6+W5500 telnet功能实现
- VC学生信息管理系统ODBC
- 尚硅谷Spring4、SpringMVC、MyBatis视频教程
- 手机音圈马达的结构报告跟动作原理
- VC+halcon,显示图片,缩放拖动
- VC下获取硬盘信息支持IDESCSI
- springMVC空项目
- 基于des的加密解密系统
评论
共有 条评论