翻译来源:https://www.codeproject.com/Articles/2913/A-Tree-List-Control
作者:TigerX
介绍
这是从类派生的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 { // Construction public: 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 }
然后自由使用。
本文介绍了一种结合了树形视图和列表视图特点的控件——树列表控件(CTreeListCtrl)。该控件由CWnd类派生而来,支持多种特性如标题拖放、透明拖拽窗口等,并提供了丰富的自定义功能。
315

被折叠的 条评论
为什么被折叠?



