1、“打开”和“另存为”对话框
CString CTestDlg::selectFileName(BOOL isOpen, CString defaultFileName, CString &fileName)
{
//isOpen = TRUE---->open打开
//isOpen = FALSE--->save另存为
CFileDialog hFileDlg(isOpen, NULL ,
defaultFileName,
OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,
TEXT("注册表文件 (*.reg)|*.reg|所有文件(*.*)|*.*|"),
NULL);
CString currentDir;
GetCurrentDirectory(MAX_PATH,currentDir.GetBuffer(MAX_PATH));
currentDir.ReleaseBuffer();
hFileDlg.m_ofn.lpstrInitialDir = currentDir;
//hFileDlg.m_ofn.lpstrTitle = "保存";
if(hFileDlg.DoModal() == IDOK)
{
CString str;
str = hFileDlg.GetPathName();
fileName = hFileDlg.GetFileName();
return str;
}
return NULL;
}
2、文件夹浏览
CString CTestDlg::selectPath()
{
//explore
//ShellExecute(NULL, "explore", "D://", NULL, NULL, SW_SHOWDEFAULT);
BROWSEINFO bi;
char buffer[MAX_PATH];
ZeroMemory(buffer, MAX_PATH);
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = buffer;
bi.lpszTitle = "请选择软件的安装路径";
bi.ulFlags = BIF_EDITBOX;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
LPITEMIDLIST pList = NULL;
if ((pList = SHBrowseForFolder(&bi)) != NULL) {
char path[MAX_PATH];
ZeroMemory(path, MAX_PATH);
SHGetPathFromIDList(pList, path);
TRACE("select path is :%s/n", path);
CString str;
str.Format("%s", path);
((CEdit*)GetDlgItem(IDC_EDIT_INSTALLPATH))->SetWindowText(str);
return str;
}
}