MFC應用實例:選擇文件夾對話框
在這個MFC應用實例中,我們將展示如何在程序中添加選擇文件夾對話框,并讓用戶選擇電腦中的文件夾。 新建一個基于對話框的應用程序 首先,我們需要新建一個基于對話框的應用程序,將其命名為OpenDir
在這個MFC應用實例中,我們將展示如何在程序中添加選擇文件夾對話框,并讓用戶選擇電腦中的文件夾。
新建一個基于對話框的應用程序
首先,我們需要新建一個基于對話框的應用程序,將其命名為OpenDir。
設(shè)計對話框
接下來,我們需要對對話框進行設(shè)計。在對話框上添加一個按鈕,命名為“打開文件夾”,并將其與對應的響應函數(shù)關(guān)聯(lián)。
添加響應函數(shù)
在“打開文件夾”按鈕的響應函數(shù)OnButtonOpendir()中,我們添加以下代碼:
#define BIF_NEWDIALOGSTYLE 0x0040
void COpenDirDlg::OnButtonOpendir()
{
HWND hwnd GetSafeHwnd(); //得到窗口句柄
CString filePath ""; //得到文件路徑
LPMALLOC pMalloc;
if (::SHGetMalloc(pMalloc) NOERROR) //取得IMalloc分配器接口
{
BROWSEINFO bi;
TCHAR pszBuffer[MAX_PATH];
LPITEMIDLIST pidl;
bi.hwndOwner hwnd;
NULL;
pszBuffer;
bi.lpszTitle _T("選擇文件夾"); //選擇目錄對話框的上部分的標題
bi.ulFlags BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS | BIF_RETURNFSANCESTORS;
bi.lpfn NULL;
bi.lParam 0;
bi.iImage 0;
if ((pidl ::SHBrowseForFolder(bi)) ! NULL) //取得IMalloc分配器接口
{
if (::SHGetPathFromIDList(pidl, pszBuffer)) //獲得一個文件系統(tǒng)路徑
{
filePath pszBuffer;
}
pMalloc->Free(pidl); //釋放內(nèi)存
MessageBox(filePath);
}
pMalloc->Release(); //釋放接口
}
}
運行程序
現(xiàn)在,我們可以運行程序了。點擊“打開文件夾”按鈕后,將會彈出一個選擇文件夾的對話框。
選擇文件夾
在對話框中,用戶可以瀏覽電腦中的文件夾,并選擇一個文件夾。選擇完成后,選擇的文件夾路徑將會在MessageBox中顯示出來。