使用"文件瀏覽"對話框選擇文件夾

 原文:http://babybandf.blog.163.com/blog/static/61993532009313533142/

    在進行文件操作時,除了使用"文件"對話框來獲得文件路徑外,還常常要獲得文件夾的路徑,這就需要使用"文件瀏覽"對話框。可以通過API函數SHBrowseForFolder來顯示"文件瀏覽"對       話框。

語法格式如下:

WINSHELLAPI LPITEMIDLIST WINAPI 
SHBrowseForFolder( LPBROWSEINFO lpbi );

其中,lpbi是指BROWSEINFO結構指針。

通過BROWSEINFO結構可以設置"文件瀏覽"對話框的信息。

例6.11  下面使用"文件瀏覽"對話框選擇文件夾。程序設計步驟如下:

(1)創建一個基於對話框的應用程序,將對話框的Caption屬性修改爲"使用文件瀏覽對話框選擇文件夾"。

(2)向對話框中添加一個羣組框控件、一個靜態文本控件和一個按鈕控件。

(3)處理"選擇文件夾"按鈕的單擊事件,代碼如下。

void CBrowseDlg::OnGetbrowse() 
{
CString ReturnPach;        //字符串變量
TCHAR szPath[_MAX_PATH];                        //保存路徑變量
BROWSEINFO bi;                                   // BROWSEINFO結構變量
bi.hwndOwner    = NULL;                           //HWND句柄
bi.pidlRoot       = NULL;                           //默認值爲NULL
bi.lpszTitle       = _T("文件瀏覽對話框");           //對話框標題
bi.pszDisplayName = szPath;                         //選擇文件夾路徑
bi.ulFlags        = BIF_RETURNONLYFSDIRS;       //標記
bi.lpfn           = NULL;                           //默認值爲NULL
bi.lParam         = NULL;                           //回調消息
LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi);   //顯示文件瀏覽對話框
if(pItemIDList)
{
if(SHGetPathFromIDList(pItemIDList,szPath))   //判斷是否獲得文件夾路徑
ReturnPach = szPath;     //獲得文件夾路徑
}
else
{
ReturnPach = "";        //文件夾路徑爲空
}
m_Path.SetWindowText(ReturnPach);    //顯示文件夾路徑
}
發佈了22 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章