• 大小: 45KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: VC  MFC  

资源简介

通过重写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


评论

共有 条评论