树列表控件CTreeListCtrl类

来源:互联网 发布:prim算法的意义 编辑:程序博客网 时间:2024/06/11 05:59

翻译来源:https://www.codeproject.com/Articles/2913/A-Tree-List-Control

作者:TigerX


  • 下载源文件 - 102 Kb
  • 下载演示文件 - 54.6 Kb

介绍

这是从类派生的CWnd 类。它是一个列表的树控件

特征

以下是许多功能中的一些CTreeListCtrl

  • 兼容CTreeCtrl CListCtrl
  • 标题拖放
  • 拖放在 CTreeListCtrl
  • 透明拖拉窗口与Alpha混合
  • 列表的双色
  • 背景图
  • 复选框支持
  • 锁box支持
  • 嵌入式修改控制

快照1

快照2


如何使用它

将此字符串添加到stdafx.h中
#include "..\\TurboDLL\\xTurboDll.h"

定义你的控制

class CMyTreeListCtrl : public CTreeListCtrl  {public:  CMyTreeListCtrl();  virtual ~CMyTreeListCtrl();protected:  //{{AFX_MSG(CMyTreeListCtrl)  afx_msg void OnExpanding(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnExpanded(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnUpdating(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnUpdated(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnDragEnter(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnDragLeave(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnDragOver(NMHDR* pNMHDR, LRESULT* pResult);  afx_msg void OnDrop(NMHDR* pNMHDR, LRESULT* pResult);  //}}AFX_MSG  DECLARE_MESSAGE_MAP()};

用你的控制

class CTurboDragDlg : public CDialog{// Constructionpublic:  CTurboDragDlg(CWnd* pParent = NULL);   // standard constructor        ...  CImageList  m_ImageList;  CMyTreeListCtrl  m_tree1;  CMyTreeListCtrl m_tree2;        ...};CTurboDragDlg::OnInitDialog() {  CDialog::OnInitDialog();    // TODO: Add extra initialization here  m_ImageList.Create( IDB_BITMAP_TREE, 16, 4, 0xFF00FF );  CRect rect;  GetClientRect(&rect);  rect.DeflateRect( 5, 5, 5, 5 );  CRect left;  left = rect;  left.right = ( rect.left + rect.right ) / 2;  CRect right;  right = rect;  right.left = ( rect.left + rect.right ) / 2;  m_tree1.Create( 0x50810000, left, this, 0 );  m_tree2.Create( 0x50810000, right, this, 1 );        // Add other initialize code here        ...                return TRUE;  // return TRUE unless you set the focus to a control  // EXCEPTION: OCX Property Pages should return FALSE}

然后自由使用。