MFC实现选择文件夹的对话框


由于MFC自带的CFileDiag是只能选择文件的,无法定制只能选择文件夹的对话框。然后当你仅仅需要操作文件夹,批量操作文件时,你需要用WIN32API实现,以下贴出制做该对话框的函数。

void C连连看View::OnFilePicpath() { // TODO: Add your command handler code here CString sFolderPath; BROWSEINFO bi; TCHAR Buffer[MAX_PATH]; //初始化入口参数bi开始 bi.hwndOwner = NULL; bi.pidlRoot =NULL;//初始化制定的root目录很不容易, bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框 bi.lpszTitle = _T("选择图片文件路径"); bi.ulFlags = BIF_RETURNONLYFSDIRS;//Flags specifying the options for the dialog box bi.lpfn = NULL; bi.iImage=IDR_MAINFRAME; //初始化入口参数bi结束 LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框 if(pIDList) { SHGetPathFromIDList(pIDList, Buffer); //取得文件夹路径到Buffer里 sFolderPath = Buffer;//将路径保存在一个CString对象里 //picPath=sFolderPath; } LPMALLOC lpMalloc; if(FAILED(SHGetMalloc(&lpMalloc))) return; //释放内存 lpMalloc->Free(pIDList); lpMalloc->Release(); }

你可能感兴趣的:(MFC实现选择文件夹的对话框)