MFC 选择文件目录

方法一:

//CString strpath;
 LPMALLOC   pMalloc;  
if(::SHGetMalloc(&pMalloc)   ==   NOERROR)  
{  
   BROWSEINFO   bi;  
   char   pszBuffer[MAX_PATH];  
   LPITEMIDLIST   pidl;  
   bi.hwndOwner   =   GetSafeHwnd();  
   bi.pidlRoot   =   NULL;  
   bi.pszDisplayName   =   pszBuffer;  
   bi.lpszTitle   =   _T("Select   a   Starting   Directory");  
   bi.ulFlags   =   BIF_RETURNFSANCESTORS   |   BIF_RETURNONLYFSDIRS;  
   bi.lpfn   =   NULL;  
   bi.lParam   =   0; 
   if((pidl   =   ::SHBrowseForFolder(&bi))   !=   NULL)  
   {  
     if   (::SHGetPathFromIDList(pidl,   pszBuffer))  
      {     
         strpath= pszBuffer;
         SetDlgItemText( IDC_Edition1, strpath);    
      }   
     pMalloc->Free(pidl);  
   }   
   pMalloc->Release();  
 }      

 

方法二:

 

BROWSEINFO     bi;
 char      szBuf[MAX_PATH];  
 LPITEMIDLIST    pidl;  
 LPMALLOC     pMalloc;  
 CString      szStr="";  

 if( ::SHGetMalloc(&pMalloc) == NOERROR )  
 {  
  bi.hwndOwner  = NULL;  
  bi.pidlRoot   = NULL;  
  bi.pszDisplayName = szBuf;  
  bi.lpszTitle  = _T("选择目录");  
  bi.ulFlags   = BIF_RETURNFSANCESTORS;  
  bi.lpfn    = NULL;  
  bi.lParam   = 0;  
  if( (pidl = ::SHBrowseForFolder(&bi)) != NULL )
  {  
   if( ::SHGetPathFromIDList(pidl,szBuf) )
   {  
    szStr=szBuf;  
   }  
   pMalloc->Free(pidl);  
  }  
   pMalloc->Release();  
 }  
 if(szStr=="")
 {
  return;
 }
 else
 {  
  m_strpath=szStr;
  SetDlgItemText( IDC_GamePath, m_strpath );
 }

 

 

方法三: false/true 打开/保存

CFileDialog FileDlg(FALSE);
 CString strFileName;
 if(FileDlg.DoModal() == IDOK)
 {
  strFileName = FileDlg.GetPathName();
 }
 else
 {
  return 0;
 }

 

 

 

MFC 选择和保存文件

 

TCHAR szFilters[] = _T("bat files(Server.bat)|Server.bat|All files(*.*)||");
// 将 TRUE 更为FALSE 就变成保存文件对话框了

 CFileDialog dlg(TRUE,_T("bat"),_T("Serverbat"),OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,szFilters);
 if(dlg.DoModal()== IDOK)
 {
  m_StrPath = dlg.GetPathName();
  CString filename=dlg.GetFileName();
  int index = m_StrPath.Find(filename);
  m_StrPath.Delete(index, filename.GetAllocLength()+1);
  this->UpdateData( FALSE );
  SetDlgItemText( IDC_OldIP, GetOldServerIP( m_StrPath ) );
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值