|
在實(shí)際的MFC編程當(dāng)中,常常需要彈出對話框選擇文件、選擇目錄等操作,對于選擇文件,用CFileDialog就可以很簡單的解決,而對于選擇目錄,則稍稍需要多一些步驟,需要自己創(chuàng)建Dialog。
1、選擇文件
首先創(chuàng)建如下的對話框,并為它創(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 = "請選擇目錄"; 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ì)看到文件夾路徑選擇對話框! 2、選擇文件操作相對簡單 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); } |
|
|