日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[MFC]设置文件夹目录时遇到的问题

發布時間:2024/1/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [MFC]设置文件夹目录时遇到的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  關鍵字:SHBrowseForFolder、SHGetPathFromIDList
?

  問題很菜,在網上找了一段想當然的代碼改吧改吧,結果報錯了,甚至都不知道錯哪里,調試也沒法跟蹤。
?

?

正文

  一、問題代碼

????CString?szPath;
????BROWSEINFO?bi;???
????bi.hwndOwner?
=?m_hWnd;
????bi.pidlRoot?
=?NULL;???
????bi.pszDisplayName?
=?szPath.GetBuffer();???
????bi.lpszTitle?
=L"請選擇目錄:";???
????bi.ulFlags?
=?BIF_RETURNFSANCESTORS?|?BIF_RETURNONLYFSDIRS;?
????bi.lpfn?
=?NULL;???
????bi.lParam?
=?0;???
????bi.iImage?
=?0;???
????
//彈出選擇目錄對話框
????LPITEMIDLIST?lp?=?SHBrowseForFolder(&bi);???
????
if(lp?&&?SHGetPathFromIDList(lp,?szPath.GetBuffer()))???
????????AfxMessageBox(szPath);
????
else???
????????AfxMessageBox(L
"無效的目錄,請重新選擇");


?

  二、報錯截圖

?

?

三、解決錯誤

????TCHAR?szPath[MAX_PATH];
????BROWSEINFO?bi;???
????bi.hwndOwner?=?m_hWnd;
????bi.pidlRoot?=?NULL;???
????bi.pszDisplayName?=?szPath;???
????bi.lpszTitle?=L"請選擇目錄:";???
????bi.ulFlags?=?BIF_RETURNFSANCESTORS?|?BIF_RETURNONLYFSDIRS;?
????bi.lpfn?=?NULL;???
????bi.lParam?=?0;???
????bi.iImage?=?0;???
????
//彈出選擇目錄對話框
????LPITEMIDLIST?lp?=?SHBrowseForFolder(&bi);???
????
if(lp?&&?SHGetPathFromIDList(lp,?szPath))???
????????AfxMessageBox(CString(szPath));
????
else???
????????AfxMessageBox(L"無效的目錄,請重新選擇");

    說明:把CString改成了TCHAR數組。

?

結束語
?

  折騰很久,搜了老半天,最后把修改前的代碼和修改后的代碼比較了一下,才猜想出來。
?

?

總結

以上是生活随笔為你收集整理的[MFC]设置文件夹目录时遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。