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

 

代码
打开文件对话框
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;

 

 

你可能感兴趣的:(打开文件)