1. 程式人生 > >MFC實現選擇資料夾的對話方塊

MFC實現選擇資料夾的對話方塊

由於MFC自帶的CFileDiag是隻能選擇檔案的,無法定製只能選擇資料夾的對話方塊。然後當你僅僅需要操作資料夾,批量操作檔案時,你需要用WIN32API實現,以下貼出製做該對話方塊的函式。


void CQQICKView::OnMmm()
{
 // TODO: Add your command handler code here
 CString m_FileDir;
 BROWSEINFO bi;
 ZeroMemory(&bi, sizeof(BROWSEINFO));
 bi.hwndOwner = m_hWnd;

 bi.ulFlags   = BIF_RETURNONLYFSDIRS;
 LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
 BOOL bRet = FALSE;
 TCHAR szFolder[MAX_PATH*2];
 szFolder[0] = _T('\0');
 if (pidl)
 {
  if (SHGetPathFromIDList(pidl, szFolder))  
  bRet = TRUE;

  IMalloc *pMalloc = NULL;
  if (SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc)
  
   pMalloc->Free(pidl); 
   pMalloc->Release();
  }
 }
 
 m_FileDir = szFolder;
 TRACE("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");

 TRACE(m_FileDir);
 TRACE("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");

}