MFC选择目录对话框

//添加回调函数记录上次打开的目录

static std::string g_lastSelDir;  

int   CALLBACK   BrowseCallbackProc(HWND   hwnd,   UINT   msg,   LPARAM   lp,   LPARAM   pData)  
{  
 if   (msg   ==   BFFM_INITIALIZED   )  
 {  
  ::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)g_lastSelDir.c_str());  
 }  
 return   0;  
}  

 

char szPath[MAX_PATH];     //存放选择的目录路径
 CString str;

 ZeroMemory(szPath, sizeof(szPath));  

 BROWSEINFO bi;  
 bi.hwndOwner = m_hWnd;  
 bi.pidlRoot = NULL;  
 bi.pszDisplayName = szPath;  
 bi.lpszTitle = "请选择提取文件保存的目录:";  
 bi.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE | BIF_EDITBOX;  
 bi.lpfn = NULL;  
 bi.lParam = 0;  
 bi.iImage = 0;  
 //弹出选择目录对话框
 LPITEMIDLIST lp = SHBrowseForFolder(&bi);  

 if(lp && SHGetPathFromIDList(lp, szPath))  
 {
  str.Format("选择的目录为 %s",  szPath);

  g_lastSelDir = str.getbuffer(0);
  AfxMessageBox(str);


 }
 else  
  AfxMessageBox("无效的目录,请重新选择");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值