{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE, NULL, NULL, OFN_NOCHANGEDIR, _T("XML Files (*.xml)|*.xml||"));
if(IDOK == dlg.DoModal())
{
m_strConfigFile = dlg.GetPathName();
UpdateData( FALSE );
}
}
void CSetupDlg::OnButtonBroswerSrcexe()
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE, NULL, NULL, OFN_NOCHANGEDIR, _T("EXE Files (*.exe)|*.exe||"));
if(IDOK == dlg.DoModal())
{
m_strSrcExe = dlg.GetPathName();
UpdateData( FALSE );
}
}
bool CSetupDlg::GetBrowseFolder( CString& strFolder )
{
TCHAR szDir[MAX_PATH] = {0};
BROWSEINFO bi;
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDir;
bi.lpszTitle = _T("请选择目录");
bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
ITEMIDLIST* pidl = SHBrowseForFolder(&bi);
if( pidl != NULL && SHGetPathFromIDList(pidl, szDir) )
{
strFolder = szDir;
return true;
}
return false;
}
void CSetupDlg::OnButtonBroswerSrc()
{
// TODO: Add your control notification handler code here
if ( this->GetBrowseFolder( m_strDirSrc ) )
{
UpdateData( FALSE );
}
}
本文介绍了如何使用C++和MFC实现文件选择对话框及文件夹浏览功能。通过具体的代码示例,展示了如何设置文件类型过滤器,并通过对话框获取用户选择的文件路径或文件夹路径。

2万+

被折叠的 条评论
为什么被折叠?



