⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mytreelistctrl.cpp

📁 一个关于数据结结的
💻 CPP
字号:
// MyTreeListCtrl.cpp: implementation of the CMyTreeListCtrl class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TurboDemo.h"
#include "MyTreeListCtrl.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMyTreeListCtrl::CMyTreeListCtrl()
{

}

CMyTreeListCtrl::~CMyTreeListCtrl()
{

}

BEGIN_MESSAGE_MAP(CMyTreeListCtrl, CTreeListCtrl)
	//{{AFX_MSG_MAP(CTreeListDemoDlg)
	ON_NOTIFY_REFLECT( TLN_ITEMEXPANDING,  OnExpanding )
	ON_NOTIFY_REFLECT( TLN_ITEMEXPANDED,  OnExpanded )
	ON_NOTIFY_REFLECT( TLN_ITEMUPDATING, OnUpdating )
	ON_NOTIFY_REFLECT( TLN_ITEMUPDATED, OnUpdated )
	ON_NOTIFY_REFLECT( TLN_BEGINDRAG, OnBeginDrag )
	ON_NOTIFY_REFLECT( TLN_DRAGENTER, OnDragEnter )
	ON_NOTIFY_REFLECT( TLN_DRAGLEAVE, OnDragLeave )
	ON_NOTIFY_REFLECT( TLN_DRAGOVER, OnDragOver )
	ON_NOTIFY_REFLECT( TLN_DROP, OnDrop )
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CMyTreeListCtrl::OnExpanding(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELIST lpnmtl = ( LPNMTREELIST )pNMHDR;
	
	CTreeListItem* pItem = 	lpnmtl->pItem;
	int iCol = lpnmtl->iCol;
	
	CString str = GetItemText( pItem, iCol );
	CString str2 = _T("@@@@@ Expending - ");
	CString str3 = str2 + str;

//	AfxMessageBox( str3 );
	
	*pResult = 0;
}

void CMyTreeListCtrl::OnExpanded(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELIST lpnmtl = ( LPNMTREELIST )pNMHDR;
	
	CTreeListItem* pItem = 	lpnmtl->pItem;
	int iCol = lpnmtl->iCol;
	
	CString str = GetItemText( pItem, iCol );
	CString str2 = _T("@@@@@ ********* - ");
	CString str3 = str2 + str;

//	AfxMessageBox( str3 );

	*pResult = 0;
}

void CMyTreeListCtrl::OnUpdating(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELIST lpnmtl = ( LPNMTREELIST )pNMHDR;
	
	CTreeListItem* pItem = 	lpnmtl->pItem;
	int iCol = lpnmtl->iCol;
	
	CString str = GetItemText( pItem, iCol );
	CString str2 = _T("@@@@@ UpdateColumn - ");
	CString str3 = str2 + str;

	AfxMessageBox( str3 );

	if( str.Compare(_T("0") ) == 0 )
		*pResult = -1;
	else
		*pResult = 0;
}

void CMyTreeListCtrl::OnUpdated(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELIST lpnmtl = ( LPNMTREELIST )pNMHDR;
	
	CTreeListItem* pItem = 	lpnmtl->pItem;
	int iCol = lpnmtl->iCol;
	
	CString str = GetItemText( pItem, 0 );
	CString str2 = _T("@@@@@ UpdateItem - ");
	CString str3 = str2 + str;

	AfxMessageBox( str3 );
	
	if( str.Compare(_T("1") ) == 0 )
		*pResult = -1;
	else
		*pResult = 0;
}

void CMyTreeListCtrl::OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELISTDROP lpnm = ( LPNMTREELISTDROP )pNMHDR;

	POSITION pos = GetFirstSelectedItemPosition();
	int i=0;
	while( pos != NULL )
	{
		GetNextSelectedItem( pos );
		i++;
	}

	if( i == 3 )
		*pResult = -1;
}

void CMyTreeListCtrl::OnDragEnter(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELISTDROP lpnm = ( LPNMTREELISTDROP )pNMHDR;

}

void CMyTreeListCtrl::OnDragLeave(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELISTDROP lpnm = ( LPNMTREELISTDROP )pNMHDR;
	SetTargetItem();
}

void CMyTreeListCtrl::OnDragOver(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMTREELISTDROP lpnm = ( LPNMTREELISTDROP )pNMHDR;

	if( lpnm->pItem->m_nLevel == 2 )
	{
		*pResult = -1;
	}
	else
	{
		*pResult = 0;
	}
}

void CMyTreeListCtrl::OnDrop(NMHDR* pNMHDR, LRESULT* pResult)
{
	AfxMessageBox("Drop OK");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -