CString
csPath
=
GetDirectoryPath();
csPath為妳選擇的路徑名
GetDirectoryPath()函數的原型如下:
CString
CDlgLocalConfig::GetDirectoryPath()
{
LPITEMIDLIST
pidlRoot=NULL;
SHGetSpecialFolderLocation(m_hWnd,CSIDL_DRIVES,&pidlRoot);
BROWSEINFO
bi;
//必須傳入的參數,下面就是這個結構的參數的初始化
CString
strDisplayName;
//用來得到,妳選擇的活頁夾路徑,相當於提供壹個緩沖區
bi.hwndOwner=GetSafeHwnd();
//得到父窗口Handle值
bi.pidlRoot=pidlRoot;
//這個變量就是我們在上面得到的.
bi.pszDisplayName=strDisplayName.GetBuffer(MAX_PATH+1);
//得到緩沖區指針
char
szLan[32]
=
{0};
g_StringLanType(szLan,
"文件夾",
"Directory");
bi.lpszTitle=szLan;
//設置標題
bi.ulFlags=BIF_RETURNONLYFSDIRS;
//設置標誌
bi.lpfn=NULL;
bi.lParam=0;
bi.iImage=0;
//上面這個是壹些無關的參數的設置,最好設置起來,
LPITEMIDLIST
lpIDList=
SHBrowseForFolder(&bi);
//打開對話框
strDisplayName.ReleaseBuffer();
//和上面的GetBuffer()相對應
char
pPath[MAX_PATH];
CString
Str;
if
(lpIDList)
{
SHGetPathFromIDList
(lpIDList,
pPath);
Str=pPath;
}
return
Str;
}
這樣妳點擊瀏覽按鈕時就會出現選擇路徑對話框了。