void CServerDlg::OnBnClickedButtonSavePath()
{
CString str;
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO)); //作用为给所有参数都设为0,即NULL
bi.hwndOwner = GetSafeHwnd(); //bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL; //设置开始搜索位置,为NULL默认从the desktop folder开始
bi.pszDisplayName = szPath; //被选中的文件夹缓冲区地址
bi.lpszTitle = _T("请选择数据文件存储目录:"); // //该浏览文件夹对话框对话框的显示文本,用来提示该浏览文件夹对话框的功能、作用和目的。
bi.ulFlags = BIF_BROWSEINCLUDEFILES; //文件也能被选中
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
//弹出选择目录对话框
LPITEMIDLIST lp = SHBrowseForFolder(&bi); //SHBrowseForFolder用来显示一个让用户可以选择文件夹的对话框,返回值是指向选定的文件夹相对应于所选择根目录地址的路径标识符指针。
if (lp && SHGetPathFromIDList(lp, szPath))
{
str.Format(L"您选择的目录为 %s", szPath);
MessageBox(str, L"存储目录选择成功");
GetDlgItem(IDC_EDIT_SAVE_PATH)->SetWindowText(szPath);
/* CString temp = L"\\";
temp += FILENAME;
fileName = szPath + temp;*/
/*CEdit *edit = (CEdit *)GetDlgItem(IDC_EDIT_SAVE_PATH);
edit->SetReadOnly(true);*/
}
else
{
MessageBox(L"无效的目录,请重新选择,也可以不选择存储目录,则数据文件存储在当前路径下", L"操作错误");
}
}VC点击按键弹出文件路径选择对话框
原文:http://blog.csdn.net/wangshihui512/article/details/42886725