我使用的是CFileDialog,我设置了如下所示的初始路径,如代码所示。这不管用。如果我弄错了,请纠正我。
CFileDialog* filedlg = new CFileDialog(TRUE,(LPCTSTR)NULL , (LPCTSTR)NULL , OFN_HIDEREADONLY| OFN_ENABLESIZING , (LPCTSTR)NULL , FromHandle (hImgDlg) ,0 , FALSE );
filedlg ->m_ofn.lpstrInitialDir = "C:\\" ;
if ( filedlg ->DoModal() == IDOK )
{
/*** do somthing here *****/
}发布于 2013-04-23 18:10:05
如果您看到OPENFILENAME结构的引用,您将看到lpstrInitialDir字段声明:
如果
lpstrInitialDir的值与应用程序首次使用Open或Save As对话框时传递的值相同,则使用用户最近选择的路径作为初始目录。
这意味着只有在程序中第一次使用对话框时,才能真正使用lpstrInitialDir字段。其余时间,它将使用用户选择的最后一个目录。
发布于 2014-04-29 00:21:52
如果设置了文件名位置,则可以使对话框打开到特定位置。只有当你确实需要打开文件夹的位置,或者你有一个默认的文件名时,我才会使用它。
CFileDialog* filedlg = new CFileDialog(TRUE, (LPCTSTR)NULL, (LPCTSTR)_T("C:\\MyFolder\\DefaultFileName.ext"), OFN_HIDEREADONLY | OFN_ENABLESIZING, (LPCTSTR)NULL, FromHandle (hImgDlg), 0, FALSE);或者,您可以使用窗口函数GetModuleFileName
CString csAppFolder;
TCHAR szPath[MAX_PATH];
// form the path to where we want to store the file
if (GetModuleFileName(NULL, szPath, MAX_PATH))
{
PathRemoveFileSpec(szPath);
csAppFolder = szPath;
}
CFileDialog* filedlg = new CFileDialog(TRUE, (LPCTSTR)NULL, (LPCTSTR)(csAppFolder + _T("\\DefaultFileName.ext")), OFN_HIDEREADONLY | OFN_ENABLESIZING, (LPCTSTR)NULL, FromHandle (hImgDlg), 0, FALSE);https://stackoverflow.com/questions/16164637
复制相似问题