请教如何像很多应用程序那样在一个TreeView里面显示我的电脑->各驱动器这样的Tree?

Alexeyomux 2003-10-17 09:26:39
如题,谢谢!
...全文
44 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AkiraChing 2003-10-21
  • 打赏
  • 举报
回复
http://www.codetools.com/atl/shellfoldertree.asp
看看
gxingmin 2003-10-20
  • 打赏
  • 举报
回复
char szDrives[128];
char* pDrive;

if ( !GetLogicalDriveStrings( sizeof(szDrives), szDrives ) )
{
return FALSE;
}

pDrive = szDrives;
while( *pDrive )
{

char szText[128];
char szTemp[16];
strcpy(szTemp,pDrive);
szTemp[strlen(pDrive)-1]='\0';

HTREEITEM hParent= InsertItem(TVI_ROOT, pDrive );

switch(GetDriveType(pDrive))
{
case DRIVE_FIXED: //Ó²ÅÌ
GetVolumeInformation(pDrive,szText,128,0,0,0,NULL,0);
sprintf(szText,"%s (%s)",szText,szTemp);

SetItemText(hParent,szText);
break;
case DRIVE_REMOVABLE:
sprintf(szText,"3.5 ÈíÅÌ (%s)",szTemp);
SetItemText(hParent,szText);
break;
case DRIVE_CDROM:
sprintf(szText,"CD Çý¶¯Æ÷ (%s)",szTemp);
SetItemText(hParent,szText);
break;
default:
break;
}

pDrive += strlen( pDrive ) + 1;
}
Alexeyomux 2003-10-19
  • 打赏
  • 举报
回复
up again.
fanfyj 2003-10-18
  • 打赏
  • 举报
回复
up
Alexeyomux 2003-10-18
  • 打赏
  • 举报
回复
up
Alexeyomux 2003-10-17
  • 打赏
  • 举报
回复
up
Alexeyomux 2003-10-17
  • 打赏
  • 举报
回复
不,我不是要浏览文件对话框,我是想知道怎么得到桌面,各个驱动器,作为tree item加入一个已经准备好的TreeView.
AkiraChing 2003-10-17
  • 打赏
  • 举报
回复
HRESULT hr;
ITEMIDLIST *pItemList;
BROWSEINFO browseinfo;

IMalloc *pMalloc = NULL;
hr = SHGetMalloc(&pMalloc);
if (FAILED(hr)) {
TRACE("Can't retrieve system's IMalloc interface: %x\n", hr);
return;
}
ASSERT(pMalloc);

memset(&browseinfo, 0, sizeof(BROWSEINFO));
CString strCaption=_T("浏览文件夹");
CString strSelPath;
TCHAR szSelPath[_MAX_PATH]={0};
browseinfo.hwndOwner = GetSafeHwnd();
browseinfo.pszDisplayName = szSelPath;
browseinfo.ulFlags = BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS;
browseinfo.lpszTitle = strCaption;

pItemList = ::SHBrowseForFolder(&browseinfo);
if (pItemList) {
// Behold the elegance of CStrBuf!
::SHGetPathFromIDList(pItemList, CStrBuf(strSelPath, MAX_PATH));
pMalloc->Free(pItemList);
}
pMalloc->Release();
pMalloc = NULL;
lshadow 2003-10-17
  • 打赏
  • 举报
回复
简单的我都不知道怎么跟你说了……
现成的控件是没有的,自己写吧。
tbmac 2003-10-17
  • 打赏
  • 举报
回复
可以看看windows的shell编程
ttlb 2003-10-17
  • 打赏
  • 举报
回复
一般的vc书上都有

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧