在VC中做一个选择文件夹的对话框

void CBmp2aviDlg::OnOpenFolder()
{
 CString sFolderPath;
 BROWSEINFO bi;
 char Buffer[MAX_PATH];
 //初始化入口参数bi开始
 bi.hwndOwner = NULL;
 bi.pidlRoot = NULL;
 bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框框
 bi.lpszTitle = "Please select folder...";
 bi.ulFlags = 0;
 bi.lpfn = NULL;
 //bi.iImage=IDI_ICON2;
 //初始化入口参数bi结束
 LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//用于显示对话框
 if(pIDList)
 {
 SHGetPathFromIDList(pIDList, Buffer);
 //取得文件夹路径到Buffer里
 sFolderPath = Buffer;//将路径保存在一个CString对象里
 }
 LPMALLOC lpMalloc;
 if(FAILED(SHGetMalloc(&lpMalloc))) return;
 //释放内存
 lpMalloc->Free(pIDList);
 lpMalloc->Release();
 

导航