其他的就不多说了,就说说关键代码吧~
第一种:含路径和文件名的(假设为*.mdb文件)
CFileDialog FileDlg(false,"*.mdb",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"mdb文件 (*.mdb)|*.mdb|所有文件 (*.*)|*.*||"); //若为ture则显示标题为打开,若为false则是另存为。
FileDlg.m_ofn.lpstrTitle="保存数据文件"; //设置小标题,该行可要可不要
if(FileDlg.DoModal()==IDOK)
{
SetDlgItemText(IDC_EDIT_PATH,FileDlg.GetPathName());//将获取到的路径以及文件名,传给edit
}
例图:
第二种:只有路径而不需要文件名的
char buf[MAX_PATH];
ZeroMemory(buf, sizeof(buf));
BROWSEINFO bi;
bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = buf;
bi.lpszTitle = "请选择目录:";
bi.ulFlags = BIF_EDITBOX ;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
LPITEMIDLIST lp = SHBrowseForFolder(&bi);
if(lp && SHGetPathFromIDList(lp, buf))
{
SetDlgItemText(IDC_EDIT_PATH,buf);
}
例图: