调用CFileDlg后程序默认路径被改变
基于对话框的程序,调用CFileDlg后程序默认路径被改变
导致数据库,图片等使用相对路径失效
如何在调用CFileDlg后恢复程序默认路径呢?
[解决办法]
当然是在调用之前记录默认的相对路径,然后在关闭CFileDialog后,重新设置默认的相对路径了。
问题是,如果有人在这台计算机的其它地方打开文件对话框选择了文件,那么默认相对路径也会改变,你怎么办呢?所以还是要用绝对路径。
[解决办法]
CFileDialog fileDlg(...);
fileDlg.m_ofn.lpstrInitialDir = _T("xxxxx"); //这里指定默认的路径
[解决办法]
就是用SetCurrentDirectory()重新设置回CFileDialog打开前的当前目录
或者用绝对路径,好的习惯应该是都用绝对路径
[解决办法]
曾经我也被弄趴下过。
后来:
CFileDialog初始化的style加上OFN_NOCHANGEDIR
就没问题了