翻译来源: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);
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
}
然后自由使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)