在使用CFileDialog的过程中,发现在选择文件之后,应用程序的运行路径就被改掉了,对于在应用文件中有使用到相对路径的地方会有影响(如访问文件).
有两种方法可以避免这种问题:
1.在实例化CFileDialog的时候给构造函数的第四个参数(Flag)加上OFN_NOCHANGEDIR,这样在IDOK之后会自动将当前路径restore.
2.在调用CFileDialog.DoModal之前保存当前路径,在IDOK之后再复位.
CString cstrCurPath;
::GetCurrentDirectory(1000,cstrCurPath.GetBuffer(1000));
cstrCurPath.ReleaseBuffer(1000);
if(IDOK==fileDlg.DoModal())
{
::SetCurrentDirectory(cstrCurPath);
//Todo other
}
3665

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



