永发信息网

关于mfc编程,选择文件夹对话框问题

答案:1  悬赏:0  手机版
解决时间 2021-08-17 23:28

void CSaveFileDlg::OnButtonOpendir()
{
 // TODO: Add your control notification handler code here
 HWND hwnd=GetSafeHwnd();        //得到窗口对象的指针句柄
 CString filePath="";
 LPMALLOC pMalloc;  //像弹出系统打开和保存对话框一样,还有一个浏览文件夹对话框,右下角是新建文件夹,
 if(::SHGetMalloc(&pMalloc)==NOERROR)
 {
  BROWSEINFO  bi;
  TCHAR       pszBuffer[MAX_PATH];
  LPITEMIDLIST   pidl;

  bi.hwndOwner =hwnd;
  bi.pidlRoot  =NULL;
  bi.pszDisplayName  =pszBuffer;
  bi.lpszTitle  =_T("选择文件夹");//选择目录对话框的上部分的标题
  //添加新文件夹按钮 BIF_NEWDIALOGSTYLE
  bi.ulFlags=BIF_NEWDIALOGSTYLE|
   BIF_RETURNONLYFSDIRS|
   BIF_RETURNFSANCESTORS;  //Only return file system ancestors

  bi.lpfn =NULL;
  bi.lParam=0;
  bi.iImage=0;
  if((pidl=::SHBrowseForFolder(&bi))!=NULL)
  {
   if(::SHGetPathFromIDList(pidl,pszBuffer))  //获得一个文件系统路径
   {
    filePath=pszBuffer;
   }
   pMalloc->Free(pidl);   //释放内存
   MessageBox(filePath);
  }
  pMalloc->Release();        //释放接口
 }
}

 

其中BROWSEINFO是什么类?实现什么功能?LPITEMIDLIST呢?请大虾详细解释一下啊

最佳答案
这个BROWSERINFO就是选择对话框的信息(比如要选择文件的类型,起始目录,还有就是存储路径的字符串等等)LPITEMIDLIST这个暂时没看出有什么用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
这两台机器配置, 求高手研究推荐!!!
oppo广告 中it is me it is me 这首歌是什么
上海工商外国语学院如何
背上有痘痕、黑点,一大片密密麻麻的,怎么办
1架起重机在20分钟里能把质量为50吨的物体提
这是什么花……
拜泉县齐齐哈尔臻品涮时尚火锅地址在什么地方
经期经常吃冰的辣的会导致不孕吗?
桂林轻轨什么时候开通,清远市什么时候通地铁,
幼小衔接包括哪些课程,想获得 幼小衔接教育方
brs的ova已经出了?
岳阳县岳阳中通快递地址在哪,我要去那里
美丽的誓言最长能坚守多久呢???
电脑带电怎么解决啊.
眼睛发肿怎么办!
推荐资讯
镇平县南阳国旅国际旅行社(镇平营业部)在哪里
上蔡县驻马店58同城上蔡县运营中心哪位知道具
我的是windows7的系统怎么找到显卡设置
青春话语一句话,形容青春的一句话
白色风信子的话语?
萧山工业园区离浙江旅游职业学院远吗
联通卡开超Q好久扣钱?
QQ音乐的歌词锁定后怎么解除啊
我六七分钟就完事了,怎么办?
怎么判断物质由分子,原子还是离子构成的?
联通卡查不了话费是什么原因?
神奇的液体压强 你能用压强的知识解释这个现
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?