MFC——CTreeCtrl数据的处理:如何将数据和逻辑分开?

CTreeCtrl 在 Windows 界面开发中广泛使用,但常见实现方式将数据与逻辑混杂,导致刷新效率低下且不易扩展。文章探讨了如何避免这些问题,提出从数据库获取目录信息的优化方案,通过使用映射数据结构存储节点信息,实现数据与逻辑分离。在添加、删除操作时,同步更新数据库和映射数据,确保一致性。
摘要由CSDN通过智能技术生成

       CTreeCtrl是windows界面开发中经常用到,也是windows系统中经常见到的一种控件,比如文件夹目录,那就是一个典型的应用,不过,很多资料中,对于CTreeCtrl的数据的处理,存在一些问题。我们可以先看下面的代码:

void CFileTreeCtrl::InitTreeCtrl(const CString& strDir, HTREEITEM hItem)
{
	CFileFind finder;
	CString strFindDir = strDir;
	strFindDir += _T("\\*.*");
	BOOL bWorking = finder.FindFile(strFindDir);
	while(bWorking)
	{
		HTREEITEM hItemTmp;
		bWorking = finder.FindNextFile();
		if(finder.IsDirectory() && !finder.IsDots())
		{
			CString szFileName = finder.GetFileName();
			CString strNextDir = finder.GetFilePath();
			SHFILEINFO sfi;
			SHGetFileInfo(strNextDir+_T("\\"), 0, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX|SHGFI_DISPLAYNAME);
			TV_INSERTSTRUCT TCItem;
			ZeroMemory(&TCItem,sizeof(TV_INSERTSTRUCT));
			
			TCItem.hInsertAfter = TVI_LAS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值