CTreeListCtrl控件使用指南

CTreeListCtrl是一个功能丰富的树形列表控件,它结合了CTreeCtrl和CListCtrl的特性。以下是CTreeListCtrl的一些主要特点:

与CTreeCtrl和CListCtrl兼容;支持头部拖放;可以在CTreeListCtrl之间进行拖放;具有透明拖拽窗口和Alpha混合效果;支持双色列表;支持背景图像;支持复选框和锁定框;支持嵌入修改后的控件。

以下是CTreeListCtrl的一些快照示例:

快照1:

快照2:

如何使用CTreeListCtrl

首先,在项目中包含TurboDLL头文件:

#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.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 }

之后,可以自由地使用这个控件。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485