mfc的CTreeCtrl控件实现windows的资源管理器

这篇博客主要记录了作者作为学习笔记,如何在MFC应用中利用CTreeCtrl控件简单实现Windows资源管理器功能。由于测试需求,作者希望在界面上展示资源管理器,方便文件拷贝。文中提供了CFileIcon类的实现,用于获取系统图标,并强调了代码简洁性,适合快速实现类似功能。
摘要由CSDN通过智能技术生成

         记录这个文章没别的意思就是当做是学习笔记,没什么技术含量,因为测试其他功能需要在界面上面方便把东西拷贝到电脑上面,使用需要在测试工程里面直接把windows的资源管理器展示出来,这个东西以前做过,但是代码丢了很久,mfc只是测试的时候用一下,基本没有去细挖,所以这次记录一下代码,这个也简单的显示了一些系统图标。

没什么东西直接上主要代码(系统自己带的代码能不上就不上了)。

BOOL Cwp8MtpTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
//设置目录树样式
	DWORD dwStyle = GetWindowLong(m_pcTreeCtrl.m_hWnd,GWL_STYLE);
	dwStyle |= TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT;
	SetWindowLong(m_pcTreeCtrl.m_hWnd,GWL_STYLE,dwStyle);
	//绑定图标链表
	m_pcTreeCtrl.SetImageList(CFileIcon::GetSysImgList(), TVSIL_NORMAL); 
	m_hPCTreeRoot = m_pcTreeCtrl.InsertItem(_T("我的电脑"),1,1);
	GetLogicalDrives(m_hPCTreeRoot);//获取本地驱动器加载到目录树
	GetDriveDir(m_hPCTreeRoot);	//获取驱动器下一级文件夹到目录树
	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
// 获取盘符到目录树,作为根目录下一级节点
void Cwp8MtpTestDlg::GetLogicalDrives(HTREEITEM hRoot)
{
	size_t szAllDrivesStrings = GetLogicalDriveStrings(0,NULL);	//获取驱动器字符长度
	WCHAR* pDriveStrings = new WCHAR[szAllDrivesStrings + sizeof(_T(""))];//定义字符串存储驱动器字符pDriveStrings
	GetLogicalDriveStrings((DWORD)szAllDrivesStrings,pDriveStrings);//获取驱动器字符到pDriveStrings
	//截取单个驱动器字符出来添加到目录树上
	//定义临时字符指针指向驱动器字符信息
	//(为了最后可以释放驱动器字符串方便,如果直接移动字符串指针,
	//后面调用delete释放字符串资源的时候会报错)
WCHAR* pTempDrive = pDriveStrings;
	size_t szDriveString = wcslen(pTempDrive);
	while(szDriveString>0)
	{
		m_pcTreeCtrl.InsertItem(pTempDrive,2,2,hRoot);//加载解析后的一个驱动器信息到目录树
		pTempDrive += szDriveString + 1;
		szDriveString = wcslen(pTempDrive);
	}
	delete pDriveStrings;
}
// 获取驱动器下一级目录到目录树上显示
void Cwp8MtpTestDlg::GetDriveDir(HTREEITEM hRoot)
{
	HTREEITEM hChild = m_pcTreeCtrl.GetChildItem(hRoot);//获取根节点下的第一个盘符节点
	while(hChild)
	{
		//获取查找路径
		CString strText = m_pcTreeCtrl.GetItemText(h
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值