举例: CFoldersDialog cFolderDlg; cFolderDlg.BrowseFolder(m_hWnd,&m_strDirPath,_T("请选择文件夹"));浏览文件夹的对话框会显示“请选择文件夹”提示字符,确定之后的文件夹路径会返回到m_strDirPath中,取消后不返回。 // FoldersDialog.cpp: implementation of the CFoldersDialog class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "FoldersDialog.h" //////////////////////////////////////////////////////////////////////// Construction/Destruction////////////////////////////////////////////////////////////////////// CFoldersDialog::CFoldersDialog(){ } CFoldersDialog::~CFoldersDialog(){ } int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData) { switch(uMsg) { case BFFM_INITIALIZED: ::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, pData); break; default: break; } return 0;} int CFoldersDialog::BrowseFolder(HWND hWnd, CString* pBrowsePath, LPSTR strTitle){ BROWSEINFO bi; TCHAR szDir[MAX_PATH]; LPITEMIDLIST lpidlBrowse; CString BrowsePath; if (pBrowsePath == NULL || hWnd == NULL) return FALSE; BrowsePath = *pBrowsePath; if(BrowsePath != "") { if(BrowsePath.Right(1) == "\\") BrowsePath = BrowsePath.Left(BrowsePath.GetLength() - 1); //删除末尾的"\\" } ZeroMemory(&bi,sizeof(BROWSEINFO)); bi.hwndOwner = hWnd; bi.lpszTitle = strTitle; bi.ulFlags = BIF_RETURNONLYFSDIRS; bi.lpfn = BrowseCallbackProc; bi.lParam = (LPARAM)pBrowsePath->GetBuffer(0); lpidlBrowse = SHBrowseForFolder(&bi); if (lpidlBrowse) { SHGetPathFromIDList(lpidlBrowse,szDir); pBrowsePath->Format("%s",szDir); } return TRUE;} /**************************************************************************/ // FoldersDialog.h : header file// #if !defined(AFX_FOLDERSDIALOG_H_INCLUDED_)#define AFX_FOLDERSDIALOG_H_INCLUDED_ #if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000 /////////////////////////////////////////////////////////////////////////////// CFoldersDialog dialog class CFoldersDialog {public: CFoldersDialog(); virtual ~CFoldersDialog(); int BrowseFolder(HWND hWnd, CString* pRootPath, LPSTR strTitle);}; #endif // !defined(AFX_FOLDERSDIALOG_H_INCLUDED_) /***************************************************************************/

评论