• 大小: 4.22MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-20
  • 语言: C/C++
  • 标签: C++  MFC  TreeCtrl  

资源简介

树形控件,详细介绍:https://blog.csdn.net/konglongdanfo1/article/details/80710033

资源截图

代码片段和文件信息

// SelfUpdateTreeCtrl.cpp : 实现文件
//

#include “stdafx.h“
#include “SelfUpdateTreeCtrl.h“
#include 

// CSelfUpdateTreeCtrl

IMPLEMENT_DYNAMIC(CSelfUpdateTreeCtrl CTreeCtrl)

CSelfUpdateTreeCtrl::CSelfUpdateTreeCtrl()
{
m_strRoot = ““;
    m_hAcceptMessage = NULL;
    m_nImgList = LVSIL_NORMAL;
}

CSelfUpdateTreeCtrl::CSelfUpdateTreeCtrl(CString strPath) : m_strRoot(strPath)
{
    m_hAcceptMessage = NULL;
    m_nImgList = LVSIL_NORMAL;
InitRootDirectory();
}

CSelfUpdateTreeCtrl::~CSelfUpdateTreeCtrl()
{
   if ( NULL != m_ImgList.GetSafeHandle())
   {
       m_ImgList.DeleteImageList();
       ASSERT(m_ImgList.GetSafeHandle() == NULL);
   }
}

CSelfUpdateTreeCtrl::CSelfUpdateTreeCtrl(CSelfUpdateTreeCtrl & ob)
{
    m_strRoot = ob.m_strRoot;
    m_hAcceptMessage = ob.m_hAcceptMessage;
    if (!m_vecTreeTop.empty())
    {
        m_vecTreeTop.clear();
    }
    if (!m_vecHierarchy.empty())
    {
        m_vecHierarchy.clear();
    }
    if (!m_vecUnwantedString.empty())
    {
        m_vecUnwantedString.clear();
    }
    m_vecTreeTop = ob.m_vecTreeTop;
    m_vecHierarchy = ob.m_vecHierarchy;
    m_vecUnwantedString = ob.m_vecUnwantedString;
    //图标列表
    m_nImgList = ob.m_nImgList;
    SetTreeImageList( &(ob.m_ImgList));
}



CSelfUpdateTreeCtrl & CSelfUpdateTreeCtrl::operator= (CSelfUpdateTreeCtrl & ob)
{
    //CTreeCtrl::operator= (ob);
    if (this == &ob)
        return *this;
    m_strRoot = ob.m_strRoot;
    m_hAcceptMessage = ob.m_hAcceptMessage;
    if (!m_vecTreeTop.empty())
    {
        m_vecTreeTop.clear();
    }
    if (!m_vecHierarchy.empty())
    {
        m_vecHierarchy.clear();
    }
    if (!m_vecUnwantedString.empty())
    {
        m_vecUnwantedString.clear();
    }
    m_vecTreeTop = ob.m_vecTreeTop;
    m_vecHierarchy = ob.m_vecHierarchy;
    m_vecUnwantedString = ob.m_vecUnwantedString;
    // 图标列表
    m_nImgList = ob.m_nImgList;
    if (m_ImgList.GetSafeHandle())
    {
        m_ImgList.DeleteImageList();
        ASSERT(m_ImgList.GetSafeHandle() == NULL);
    }
    SetTreeImageList(&(ob.m_ImgList));
    
    return *this;
}

BEGIN_MESSAGE_MAP(CSelfUpdateTreeCtrl CTreeCtrl)
    ON_NOTIFY_REFLECT(TVN_SELCHANGED &CSelfUpdateTreeCtrl::OnTvnSelchanged)
END_MESSAGE_MAP()



// CSelfUpdateTreeCtrl 消息处理程序
BOOL CSelfUpdateTreeCtrl::SetTreeRoot(CString strPath)
{
m_strRoot = strPath;
return InitRootDirectory();
}

BOOL CSelfUpdateTreeCtrl::InitRootDirectory()
{
    if (““ == m_strRoot)
    {
        return FALSE;
    }
    if (!m_vecTreeTop.empty())
    {
        m_vecTreeTop.clear();
    }
    CFileFind file;
    CString strDirectory = m_strRoot;
    if ( strDirectory.Right(1) != “\\“ )
    {
        strDirectory += _T(“\\“);
    }
    strDirectory += _T(“*.*“);
    BOOL bRet = file.FindFile(strDirectory);
    unsigned long ulNum = 0;// 给每个结点设置索引号
    while(bRet)
    {
        bRet = file.

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-16 09:24  TreeCtrl\
     目录           0  2018-06-16 09:17  TreeCtrl\Introduction\
     目录           0  2018-06-16 09:17  TreeCtrl\Introduction\img\
     文件     5100529  2018-06-15 21:53  TreeCtrl\Introduction\img\examples.gif
     文件      310516  2018-06-16 09:12  TreeCtrl\Introduction\index.html
     文件         242  2018-06-16 09:22  TreeCtrl\ReadMe.txt
     目录           0  2018-06-16 09:19  TreeCtrl\Source Code\
     文件        8934  2018-06-09 19:12  TreeCtrl\Source Code\SelfUpdateTreeCtrl.cpp
     文件        1969  2018-06-09 17:05  TreeCtrl\Source Code\SelfUpdateTreeCtrl.h
     文件      344038  2018-06-15 21:52  TreeCtrl\效果视频.mp4

评论

共有 条评论