CFolderPickerDialog類封裝了Windows常用的目錄選擇對話框。常用的目錄選擇對話框提供了一種簡單的與Windows標準相一致的目錄選擇存檔對話框功能。
基本介紹
- 中文名:資料夾選擇對話框
- 外文名:CFolderPickerDialog
- 頭檔案: afxdlgs.h
- 作業系統:windows vista及以上
簡介,示例,實現,
簡介
中文翻譯為"資料夾選擇對話框".是Visual C++ 2008中新引入的針對資料夾選擇對話框設計的類,此類替代了傳統的SDK方法,而且具有更好的外觀.但是,此類僅適用於vista及以上windows作業系統.
頭檔案: afxdlgs.h
示例
構造函式:
explicit CFolderPickerDialog( LPCTSTR lpszFolder = NULL, DWORD dwFlags = 0, CWnd* pParentWnd = NULL, DWORD dwSize = 0 );
參數解釋:
- lpszFolder:Initial folder.初始目錄
- dwFlags:A combination of one or more flags that allow you to customize the dialog box.個性化視窗標誌位
- pParentWnd:A pointer to the dialog box object's parent or owner window.父視窗句柄
- dwSize:The size of the OPENFILENAME structure.OPENFILENAME結構的大小
範例:
CFolderPickerDialog fd(NULL, 0, this, 0); if (fd.DoModal()== IDOK) { CString des; des = fd.GetPathName(); MessageBox(des); }
實現
BROWSEINFO bi;
char path[MAX_PATH];
char title[] = "Select Directory";
ZeroMemory(&bi,sizeof(bi));
bi.hwndOwner = this->m_hWnd;
bi.pszDisplayName = path;
bi.lpszTitle = title;
bi.ulFlags = 0x0040;
CString dir;
LPITEMIDLIST list = SHBrowseForFolder(&bi);
if(list == NULL)
dir = "";
else
{
SHGetPathFromIDList(list,path);
dir.Format("%s",path);
}
此API版本不僅適用於XP系統,還適用vista以及win7以上系統.但在外觀界面有所差異.