在實(shí)際的MFC編程當(dāng)中,,常常需要彈出對(duì)話框選擇文件、選擇目錄等操作,,對(duì)于選擇文件,,用CFileDialog就可以很簡(jiǎn)單的解決,而對(duì)于選擇目錄,,則稍稍需要多一些步驟,,需要自己創(chuàng)建Dialog。
1,、選擇文件
首先創(chuàng)建如下的對(duì)話框,,并為它創(chuàng)建類Dialog,在Dialog頭文件中關(guān)聯(lián)保存目錄名的變量CString m_strPath,,然后為編輯框右邊的按鈕添加消息響應(yīng)函數(shù)OnButtonBrowser(),,并添加如下代碼:
void CDialog::OnButtonBrowser()
{ // TODO: Add your control notification handler code here UpdateData(TRUE); char szDir[MAX_PATH]; BROWSEINFO bi; ITEMIDLIST *pidl; bi.hwndOwner = this->m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = szDir; bi.lpszTitle = "請(qǐng)選擇目錄"; bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; pidl = SHBrowseForFolder(&bi); if(pidl == NULL) return; if(!SHGetPathFromIDList(pidl, szDir)) return; else m_strPath = szDir; UpdateData(FALSE); } 關(guān)于結(jié)構(gòu)體BROWSEINFO 和ITEMIDLIST ,可以查閱MSDN,,里面有很詳細(xì)的解釋,。 點(diǎn)擊edit控件右邊的按鈕,你就會(huì)看到文件夾路徑選擇對(duì)話框,! 2,、選擇文件操作相對(duì)簡(jiǎn)單 void CDialog::OnButtonBrowser() { // TODO: Add your control notification handler code here UpdateData(TRUE); char szFilter[]="Text files(*.txt)|*.txt"; CFileDialog dlg(1,NULL,NULL,NULL,szFilter); if(dlg.DoModal()==IDOK) UpdateDate(FALSE); } |
|