CFileDialog dlg;
想把第一次打开的位置设置在我的文档,该如何设置,说明一下,网上说系统默认会在我的文档,但是我发现有的时候,这个初始位置会跑到我们开发的软件的安装目录下,所以如何设置使其固定在我的文档呢?
dlg.m_ofn.lpstrInitialDir该设置为什么
想把第一次打开的位置设置在我的文档,该如何设置,说明一下,网上说系统默认会在我的文档,但是我发现有的时候,这个初始位置会跑到我们开发的软件的安装目录下,所以如何设置使其固定在我的文档呢?
dlg.m_ofn.lpstrInitialDir该设置为什么
TCHAR MyDocumentDir[MAX_PATH]; //add for initdir 2012/10/29
SHGetSpecialFolderPath( this->GetSafeHwnd(), MyDocumentDir, 5, 0);
这个是我的文档的位置,可是以后每次打开都是这个位置,我的意思是只第一次操作时,其他时候记住上次路径
SHGetSpecialFolderPath( this-> GetSafeHwnd(), MyDocumentDir, CSIDL_PERSONAL, 0 );
CFileDialog FileOpen(TRUE, "xls ", NULL, 0, "Excel file(*.xls)|*.xls|All file(*.*)|*.*|| ", NULL);
FileOpen.m_ofn.lpstrInitialDir = MyDocumentDir;
FileOpen.DoModal();
CString filepath = FileOpen.GetPathName();
这个你要靠自己保存了
用 注册表 或是 ini文件
如果保存到文件里,先读取这个文件里保存的路径,再赋给dlg.m_ofn.lpstrInitialDir里,如果没有这个文件,就赋给dlg.m_ofn.lpstrInitialDir默认路径
注册表的话,可能要费点时间去了解与理解,不过好处就是不容易被用户误删,自己看着办吧
{
CWinApp *pApp=AfxGetApp();
if(path.IsEmpty())
{//read
path=pApp->GetProfileString("PATH_SECTION","PATH_NAME");
}
else
{//write
pApp->WriteProfileString("PATH_SECTION","PATH_NAME",path);
}
}调用:
extern void RegisterPath(CString path);CString path="D:\\XXXX\\YYYY";
RegisterPath(path);
path="";
RegisterPath(path);打开 regedit ,找 InitInstance中给键(即RegisterKey 中的字符串