MFC CTreeCtrl CListCtrl使用14.5.20

HCURSOR CMFCTreeDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}
void CMFCTreeDlg::InitListCtrl(){
	//设置图标
	m_imgNormal.Create(MAKEINTRESOURCE(IDB_NORMAL),
		48,48,RGB(0,0,0));
	m_imgSmall.Create(MAKEINTRESOURCE(IDB_NORMAL),16,16,
		RGB(0,0,0));
	//加载进到LIST
	m_wndList.SetImageList(&m_imgNormal,LVSIL_NORMAL);
	m_wndList.SetImageList(&m_imgSmall,LVSIL_SMALL);
	//初始化列
	m_wndList.InsertColumn(0,"名称",LVCFMT_LEFT,100);
	m_wndList.InsertColumn(1,"长度",LVCFMT_LEFT,100);
}
void CMFCTreeDlg::OpenFilePath(CString Path){

	if(m_wndList.GetItemCount()>0){
		m_wndList.DeleteAllItems();
	}
	//打开文件路径 必须后面加*.*
	CString strPath=Path;
	CFileFind find;
	bool bFind=find.FindFile(strPath+"*.*");
	while(bFind){
		//查找文件夹下层路径
		bFind=find.FindNextFile();
		if(find.IsDirectory()){
			
			m_wndList.InsertItem(0,find.GetFileName(),
				0);
		}else{
			int nItem=m_wndList.InsertItem(0,find.GetFileName(),1);
			DWORD dwLen=find.GetLength();
			CString strLen;
			strLen.Format("%d",dwLen);
			m_wndList.SetItemText(nItem,1,strLen);
			
			//文件夹文件分类
			LVITEM item={0};
			item.iItem=nItem;
			item.mask=LVIF_PARAM;
			item.lParam=1;
			m_wndList.SetItem(&item);
			
		}
	}
	m_wndList.RedrawItems(0,m_wndList.GetItemCount());
	find.Close();
}

void CMFCTreeDlg::ShowList(){
	strPath="D:\\";
	OpenFilePath(strPath);
	//在LIST里面添加数据
	int nItem=m_wndList.InsertItem(0,"Test1",0);
			m_wndList.SetItemText(nItem,1,"100k");
		nItem=m_wndList.InsertItem(1,"Test2",1);
			m_wndList.SetItemText(nItem,1,"200k");
}

void CMFCTreeDlg::OnBTNNormal() 
{
	m_wndList.ModifyStyle(LVS_SMALLICON|LVS_LIST|LVS_REPORT,
			LVS_ICON);
	
}

void CMFCTreeDlg::OnBTNSmall() 
{
		m_wndList.ModifyStyle(LVS_LIST|LVS_REPORT|LVS_ICON,
				LVS_SMALLICON);
}

void CMFCTreeDlg::OnBTNList() 
{
		m_wndList.ModifyStyle(LVS_SMALLICON|LVS_REPORT|LVS_ICON,
				LVS_LIST);	
}

void CMFCTreeDlg::OnBTNReport() 
{
	m_wndList.ModifyStyle(LVS_SMALLICON|LVS_LIST|LVS_ICON,
				LVS_REPORT);	
}

void CMFCTreeDlg::OnDel() 
{
	//获取当前被选中项	
	int nItem=m_wndList.GetNextItem(-1,LVNI_SELECTED);
	if(nItem==-1){
		AfxMessageBox("请选择删除项");
		return;
	}
	//删除被选中项
	m_wndList.DeleteItem(nItem);
	//重新排列
	m_wndList.Arrange(LVA_DEFAULT);
	
}
int CALLBACK SortFunc(LPARAM lParam1,
					  LPARAM lParam2,
					  LPARAM lParamSort)
{

	return 1;
}
void CMFCTreeDlg::OnSort() 
{
	m_wndList.SortItems(SortFunc,0);
}

void CMFCTreeDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	//List 消息响应双击  还有很多可以去查询MSDN
	LPNMLISTVIEW pNMList=(LPNMLISTVIEW)pNMHDR;
	
	*pResult = 0;
	if(-1==pNMList->iItem){
		return;

	}
	CString strText=m_wndList.GetItemText(pNMList->iItem,0);
	strPath+=strText+"\\";
	OpenFilePath(strPath);
}

void CMFCTreeDlg::OnEndlabeleditList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
	
	//List 消息响应单击修改文件名  还有很多可以去查询MSDN
	//文件重命名
	*pResult = 0;
	m_wndList.SetItemText(pDispInfo->item.iItem,0,pDispInfo->item.pszText);
	


	*pResult = 0;
}
程序下载:http://pan.baidu.com/s/1sjHbTaH

你可能感兴趣的:(MFC CTreeCtrl CListCtrl使用14.5.20)