方法1:使用Xtreme Toolkit界面库中的CXTBrowseDialog 控件
if (UpdateData(TRUE))
{
CXTBrowseDialog dlg;
dlg.SetTitle(_T("Select Your Directory"));
if (!m_strDirectory.IsEmpty())
{
TCHAR path[_MAX_PATH];
STRCPY_S(path, _MAX_PATH, m_strDirectory);
dlg.SetSelPath(path);
}
if (dlg.DoModal() == IDOK)
{
m_strDirectory = dlg.GetSelPath();
UpdateData(FALSE);
}
}
方法2:不用Xtreme Toolkit界面库
CString str;
BROWSEINFO bi;
char name[MAX_PATH];
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner=GetSafeHwnd();
bi.pszDisplayName=name;
//bi.lpszTitle="Select folder";
//bi.ulFlags=BIF_USENEWUI;
LPITEMIDLIST idl=SHBrowseForFolder(&bi);
if(idl==NULL)
{
return;
}
SHGetPathFromIDList(idl,str.GetBuffer(MAX_PATH));
str.ReleaseBuffer();
m_strDirectory=str;
if(str.Right(1)!="//")
{
m_strDirectory+="//";
}
UpdateData(FALSE);