在实际的MFC编程当中,常常需要弹出对话框选择文件、选择目录等操作,对于选择文件,用CFileDialog就可以很简单的解决,而对于选择目录,则稍稍需要多一些步骤,需要自己创建Dialog。
1、选择文件
首先创建如下的对话框,并为它创建类Dialog,在Dialog头文件中关联保存目录名的变量CString m_strPath,然后为编辑框右边的按钮添加消息响应函数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); } 关于结构体BROWSEINFO 和ITEMIDLIST ,可以查阅MSDN,里面有很详细的解释。 点击edit控件右边的按钮,你就会看到文件夹路径选择对话框! 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); } |
|