打开文件对话框与目录选择对话框

 

代码
打开文件对话框
const char pszFilter[] = _T("EXE File (*.txt)|*.txt|All Files (*.*)|*.*||");
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY 
| OFN_OVERWRITEPROMPT,
  pszFilter, 
this);

dlg.m_ofn.lpstrInitialDir 
= "c:\\WINDOWS\\";  //设置对话框默认呈现的路径

if(dlg.DoModal() == IDOK)
{
CString strFilePath 
= dlg.GetPathName();
/*如果有多个文件,则
for(POSITION pos = dlg.GetStartPosition(); pos!=NULL; )
  {
   CString strFilePathName = dlg.GetNextPathName(pos);
*/
}

保存文件对话框
const char pszFilter[] = _T("EXE Files (*.txt)|*.txt||");
CFileDialog dlgSave( FALSE,   
//FALSE为保存
  _T(".txt"), //自动加上的扩展名
  _T("Output.txt"),  //默认保存的文件名
  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  pszFilter, 
this);



目录选择对话框

 BROWSEINFO bi;
 
char szPathName[MAX_PATH];
 
char szTitle[] = "选择路径";
 ZeroMemory(
&bi, sizeof(BROWSEINFO));
 
 bi.hwndOwner 
= GetSafeHwnd();
 bi.pszDisplayName 
= szPathName;
 bi.lpszTitle 
= szTitle;
 bi.ulFlags 
= 0x0040 ; 
 CString str;
CString strDir;  
//选择的目录

 LPITEMIDLIST idl 
= SHBrowseForFolder(&bi);
 
if(idl == NULL)
 {
  strDir
= "";
  
return;
 }
 
 SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH 
* 2));
 str.ReleaseBuffer();
 
if(str != "" && str.GetAt(str.GetLength() - 1!= '\\')
  str 
+= "\\";
 strDir 
= str;

 

 

posted @ 2010-04-09 17:27  独奏者  阅读(2087)  评论(0编辑  收藏  举报