• 大小: 3.37MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-28
  • 语言: 其他
  • 标签: vc  

资源简介

利用VC中的Treeview和Listview,做一个自己的资源管理器,左侧的树状目录可以关闭,当点击一个文件夹时右侧的Listview中会显示文件夹的内容。尽量模仿windows的资源管理器的功能,比如左侧文件夹图标的变化和右侧listview中可以显示“列表”,“详细资料”。

资源截图

代码片段和文件信息

// DirListCtrl.cpp : implementation file
//

#include “stdafx.h“
#include “MyExplorer.h“
#include “DirListCtrl.h“

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

/////////////////////////////////////////////////////////////////////////////
// CDirListCtrl

CDirListCtrl::CDirListCtrl()
{
}

CDirListCtrl::~CDirListCtrl()
{
}


BEGIN_MESSAGE_MAP(CDirListCtrl CListCtrl)
//{{AFX_MSG_MAP(CDirListCtrl)
ON_WM_RBUTTONDOWN()
ON_COMMAND(IDM_EDIT_COPY OnEditCopy)
ON_COMMAND(IDM_EIDT_CUT OnEidtCut)
ON_COMMAND(IDM_EDIT_PASTE OnEditPaste)
ON_COMMAND(IDM_EDIT_DELETE OnEditDelete)
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED OnItemchanged)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDirListCtrl message handlers

void CDirListCtrl::SetFolder(CString sFile)
{
int index;

if (sFile == ““) return ; //如果地址为空,则返回

m_strPath = sFile;

CImageList * imageList = m_SysImageList.GetImageList( FALSE );
SetImageList(imageList LVSIL_NORMAL);

CFileFind finder;
int bWorking = finder.FindFile(sFile+“*.*“);

if( bWorking ) {
DeleteAllItems();
}
else return;

while( bWorking ) {
bWorking = finder.FindNextFile();
if(!finder.IsDots()) 
{
HICON icon = m_SysImageList.GetIcon(sFile+finder.GetFileName()FALSEFALSE);
index = imageList->Add(icon);
InsertItem( 1 sFile+finder.GetFileName() index );
}
}
}

void CDirListCtrl::OnRButtonDown(UINT nFlags CPoint point) 
{
CListCtrl::OnRButtonDown(nFlags point);

CRect rect;
GetWindowRect(&rect);

if(!GetSelectedCount()) {
return;
}
else {
CMenu * m_PopMenu = new CMenu;
m_PopMenu->LoadMenu(IDR_MENU_MAINframe);

TrackPopupMenu(m_PopMenu->GetSubMenu(1)->m_hMenu 0 
point.x+rect.left point.y+rect.top 
0 this->GetSafeHwnd()&rect);
}
}

void CDirListCtrl::OnEditCopy() 
{
strSrcPath = strSelItemPath;
strDesPath = ““;
nOption = 1;
}

void CDirListCtrl::OnEidtCut() 
{
strSrcPath = strSelItemPath;
strDesPath = ““;
nOption = 2;

}

void CDirListCtrl::OnEditPaste() 
{
strDesPath = m_strPath;

CString msg;
msg += “源文件:“;
msg += strSrcPath;
msg += “\n“;
msg += “目标文件:“;
msg += strDesPath;
msg += “\n“;

if(nOption == 1) {
if(CopyFile(strSrcPathstrDesPathFALSE)) {
msg += “文件拷贝成功!“;
MessageBox(msg);
}
else {
msg += “文件拷贝失败!“;
MessageBox(msg);
}
}
else if(nOption == 2) {
if(MoveFile(strSrcPathstrDesPath)) {
msg += “文件移动成功!“;
MessageBox(msg);
}
else {
msg += “文件移动失败!“;
MessageBox(msg);
}
}
}

void CDirListCtrl::OnEditDelete() 
{
strSrcPath = strSelItemPath;

CString msg;
msg += “源文件:“;
msg += strSrcPath;
msg += “\n“;

if(DeleteFile(strSrcPath)) {
msg += “文件删除成功!“;
MessageBox(msg);
}
else {
msg += “文件删除失败!“;
MessageBox(msg);
}
}

void CDirListCtrl::O

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      29302  2010-09-24 20:20  P031M资源管理器\Debug\DirListCtrl.obj

     文件      39997  2010-09-24 20:20  P031M资源管理器\Debug\DirTreeCtrl.obj

     文件    2125927  2010-09-24 20:36  P031M资源管理器\Debug\MyExplorer.exe

     文件    2504868  2010-09-24 20:36  P031M资源管理器\Debug\MyExplorer.ilk

     文件      14447  2010-09-24 20:20  P031M资源管理器\Debug\MyExplorer.obj

     文件    5466844  2010-09-24 20:20  P031M资源管理器\Debug\MyExplorer.pch

     文件    4121600  2010-09-24 20:36  P031M资源管理器\Debug\MyExplorer.pdb

     文件       8736  2010-09-24 20:36  P031M资源管理器\Debug\MyExplorer.res

     文件      34590  2010-09-24 20:20  P031M资源管理器\Debug\MyExplorerDlg.obj

     文件     105867  2010-09-24 20:20  P031M资源管理器\Debug\StdAfx.obj

     文件      12575  2010-09-24 20:20  P031M资源管理器\Debug\SystemImageList.obj

     文件     214016  2010-09-25 02:07  P031M资源管理器\Debug\vc60.idb

     文件     364544  2010-09-24 20:20  P031M资源管理器\Debug\vc60.pdb

     文件       3265  2010-09-24 20:20  P031M资源管理器\DirListCtrl.cpp

     文件       1549  2010-09-24 20:20  P031M资源管理器\DirListCtrl.h

     文件       7623  2010-09-24 20:20  P031M资源管理器\DirTreeCtrl.cpp

     文件       2004  2010-09-24 20:20  P031M资源管理器\DirTreeCtrl.h

     文件      21392  2010-09-25 02:06  P031M资源管理器\MyExplorer.aps

     文件       1216  2010-09-24 20:37  P031M资源管理器\MyExplorer.clw

     文件       2119  2010-09-24 20:20  P031M资源管理器\MyExplorer.cpp

     文件       4534  2010-09-24 20:20  P031M资源管理器\MyExplorer.dsp

     文件        543  2010-09-24 20:20  P031M资源管理器\MyExplorer.dsw

     文件       1368  2010-09-24 20:20  P031M资源管理器\MyExplorer.h

     文件     140288  2010-09-25 02:07  P031M资源管理器\MyExplorer.ncb

     文件      83968  2010-09-25 02:07  P031M资源管理器\MyExplorer.opt

     文件        254  2010-09-25 02:07  P031M资源管理器\MyExplorer.plg

     文件       5557  2010-09-24 20:36  P031M资源管理器\MyExplorer.rc

     文件       6089  2010-09-24 20:20  P031M资源管理器\MyExplorerDlg.cpp

     文件       1787  2010-09-24 20:20  P031M资源管理器\MyExplorerDlg.h

     文件       3651  2010-09-24 20:20  P031M资源管理器\ReadMe.txt

............此处省略14个文件信息

评论

共有 条评论