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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【MFC】选择文件夹时,记忆上一次路径

發布時間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MFC】选择文件夹时,记忆上一次路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

參考

https://www..com/Hisin/archive/2012/02/27/2370614.html
https://www..com/ranjiewen/p/5697219.html

代碼

CString s_save_path;//存放選擇的目錄 CMutex g_mtx;//選擇文件夾對話框回調函數 int CALLBACK BrowseCallBackFun(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) {switch (uMsg){case BFFM_INITIALIZED: //選擇文件夾對話框初始化 //設置默認路徑為lpData即'D:\' ::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);//在STATUSTEXT區域顯示當前路徑 ::SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, lpData);//設置選擇文件夾對話框的標題 ::SetWindowText(hwnd, TEXT("請先設置個工作目錄"));break;case BFFM_SELCHANGED: //選擇文件夾變更時 {TCHAR pszPath[MAX_PATH];//獲取當前選擇路徑 SHGetPathFromIDList((LPCITEMIDLIST)lParam, pszPath);//在STATUSTEXT區域顯示當前路徑 ::SendMessage(hwnd, BFFM_SETSTATUSTEXT, TRUE, (LPARAM)pszPath);}break;}return 0; }void OnSelectPath(){g_mtx.Lock();char szPath[MAX_PATH]; //存放選擇的目錄路徑 //CString str;char* tmp = s_save_path.GetBuffer();//獲取上一次路徑,CString->char*ZeroMemory(szPath, sizeof(szPath));BROWSEINFO bi;bi.hwndOwner = this->GetSafeHwnd();bi.pidlRoot = NULL;bi.pszDisplayName = szPath;bi.lpszTitle = "請選擇需要打包的目錄:";bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_STATUSTEXT;bi.lpfn = BrowseCallBackFun;//回調函數bi.lParam = (LPARAM)TEXT(tmp);//上一次路徑bi.iImage = 0;//彈出選擇目錄對話框LPITEMIDLIST lp = SHBrowseForFolder(&bi);if (lp && SHGetPathFromIDList(lp, szPath)){//str.Format("選擇的目錄為 %s", szPath);s_save_path.Format("%s", szPath);//獲得新路徑//AfxMessageBox(str);}elseAfxMessageBox("無效的目錄,請重新選擇");g_mtx.Unlock(); }

總結

以上是生活随笔為你收集整理的【MFC】选择文件夹时,记忆上一次路径的全部內容,希望文章能夠幫你解決所遇到的問題。

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