導航:首頁 > 文件處理 > mfc瀏覽文件夾怎麼設置

mfc瀏覽文件夾怎麼設置

發布時間:2022-07-09 13:12:38

㈠ MFC中想實現打開文件或文件夾,該怎麼實現呢

把"通過選擇得到一個文件/文件夾的路徑" 這些代碼實現 寫到某個函數里,不是寫到按鈕實現的函數里就行了。例如:

【以下代碼中 filePathFile就是你想要的路徑】
在主體函數中:
CFileDialog *lpszOpenFile; //定義一個CfileDialog對象
//生成一個對話框
lpszOpenFile = new CFileDialog
(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件類型(*.txt)|*.txt|所有文件(*.*)|*.*|");

if(lpszOpenFile->DoModal() == IDOK )//假如點擊對話框確定按鈕
{
filePathName = lpszOpenFile->GetPathName();//得到打開文件的路徑

}

if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!");
return;
}

㈡ MFC 中如何同時實現瀏覽文件和文件夾 並獲得路徑

CString filter;
filter = "??(*.??)|*.??||*.*";
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,filter);
if(dlg.DoModal()==IDOK)
{
CString str = dlg.GetPathName();
CEdit *p_Edit = (CEdit*)GetDlgItem(IDC_EDIT??);
p_Edit ->SetWindowText(str);
}

你是不是要像這樣的.

㈢ MFC打開文件對話框怎麼設置默認文件夾

打開文件對話框裡面有一項可以設置打開出示路徑,每次關閉程序的時候,保存路徑(保存到文件或注冊表),下次運行程序的時候讀出來對打開文件對話框相關參數進行設置即可.

㈣ MFC怎麼創建瀏覽文件夾和文件的對話框

{
CString FilePathName;
CFileDialog dlg(TRUE);///TRUE為OPEN對話框,FALSE為SAVE AS對話框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();
}

文件名保存在了FilePathName里,然後處理吧

㈤ C++中用MFC創建的列表控制項如何實現雙擊打開文件列表框中的文件夾

MFC 打開保存文件對話框 .
分類: VS學習 2011-11-14 17:19 331人閱讀 評論(0) 收藏 舉報
一、打開文件夾:

1、CFileDialog實現

CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_READONLY,
TEXT("支持的圖像文件 (*.jpg;*.gif;*.bmp;...)|*.jpg;*.gif;*.bmp|專用Tiff圖像文件(*.tiff;*.tif)|*.tiff;*.tif|所有文件(*.*)|*.*||"),NULL);
hFileDlg.m_ofn.nFilterIndex=1;
hFileDlg.m_ofn.hwndOwner=m_hWnd;
hFileDlg.m_ofn.lStructSize=sizeof(OPENFILENAME);
hFileDlg.m_ofn.lpstrTitle=TEXT("打開圖像文件...\0");
hFileDlg.m_ofn.nMaxFile=MAX_PATH;
if(hFileDlg.DoModal() == IDOK)
{
m_path = hFileDlg.GetPathName();
UpdateData(FALSE);
}

2、API實現

OPENFILENAMEA ofn;
char szFile[260];
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "音頻文件\0*.wma\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = 0;

if (GetOpenFileNameA(&ofn)==FALSE)
{
return S_FALSE;
}
CString c_save_path=ofn.lpstrFile;

二、保存文件

同上,只不過將
CFileDialog hFileDlg(true,NULL 改為 CFileDialog hFileDlg(false,NULL,
或者將GetOpenFileNameA改為GetSaveFileNameA,即可。

三、瀏覽文件夾對話框

//回調函數
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
if(uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
{
if(uMsg==BFFM_INITIALIZED)
{
::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,LPARAM(lpData));
}
}
return 0;
}

TCHAR chPath[255]; //用來存儲路徑的字元串
CString strPath = "";
BROWSEINFO bInfo;
GetMoleFileName(NULL,chPath,MAX_PATH);
strPath =chPath;
ZeroMemory(&bInfo, sizeof(bInfo));
bInfo.hwndOwner = m_hWnd;
bInfo.lpszTitle = _T("請選擇路徑: ");
bInfo.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX;
bInfo.lpfn = BrowseCallbackProc;
bInfo.lParam = (LPARAM)strPath.GetBuffer(strPath.GetLength());

LPITEMIDLIST lpDlist; //用來保存返回信息的IDList
lpDlist = SHBrowseForFolder(&bInfo) ; //顯示選擇對話框
if(lpDlist != NULL) //用戶按了確定按鈕
{
SHGetPathFromIDList(lpDlist, chPath);//把項目標識列表轉化成字元串
strPath = chPath; //將TCHAR類型的字元串轉換為CString類型的字元串
m_save_path=strPath;
UpdateData(FALSE);
}

設置對話框的標題:
dlg.m_ofn.lpstrTitle = _T("Open Image");

㈥ mfc怎麼實現打開文件夾

voidCXXXDlg::OpenFolder()
{
BROWSEINFObi;
ZeroMemory(&bi,sizeof(BROWSEINFO));
//添加提示語句
bi.lpszTitle=_T("請選擇文件夾");
//添加"新建文件夾項"和"編輯框"
bi.ulFlags=BIF_NEWDIALOGSTYLE|BIF_EDITBOX;
//顯示一個對話框讓讓用戶選擇文件夾
LPITEMIDLISTpidl=SHBrowseForFolder(&bi);
charszFolder[_MAX_PATH];
memset(szFolder,0,sizeof(szFolder));
CStringstrFolder=_T("");
if(pidl!=NULL)
{
SHGetPathFromIDList(pidl,szFolder);
//保存文件夾路徑存
strFolder.Format(_T("%s"),szFolder);
afxMessageBox(strFolder);
}
else
{
return;
}
}

㈦ MFC怎樣創建能同時瀏覽文件夾和文件的對話框

BROWSEINFO bi;
ZeroMemory(&bi,sizeof(BROWSEINFO)); //指定存放文件的默認文件夾路徑
bi.lpszTitle="請選擇文件夾"; //添加提示語句
bi.ulFlags=0x0040 | BIF_EDITBOX; //添加「新建文件夾項」
LPMALLOC pMalloc;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);//以默認路徑打開瀏覽文件夾對話框
TCHAR * savepath = new TCHAR[MAX_PATH];
CString savepath2="";
if(pidl != NULL)
{
SHGetPathFromIDList(pidl,savepath);//把文件夾路徑存放在savepath中
savepath2.Format(_T("%s"),savepath);
savepath2=savepath2+"\\";//在路徑後增加斜杠
if(SUCCEEDED(SHGetMalloc(&pMalloc)))//網上說pidl指向的對象用完應該釋放
{
pMalloc->Free(pidl);
pMalloc->Release();
}
} MessageBox(savepath2);//顯示所選文件夾路徑

這是修改後的代碼,添加了第三四行,親測可用

㈧ 如何在MFC中讓一個按鈕實現打開文件(彈出選擇文件窗口)的功能

1、打開軟體。

閱讀全文

與mfc瀏覽文件夾怎麼設置相關的資料

熱點內容
交易平台小程序源碼下載 瀏覽:146
程序員記筆記用什麼app免費的 瀏覽:644
java與單片機 瀏覽:893
伺服器內網如何通過公網映射 瀏覽:476
程序員穿越到宋代 瀏覽:622
怎麼使用雲伺服器掛游戲 瀏覽:616
真實的幸福pdf 瀏覽:342
d盤php調用c盤的mysql 瀏覽:264
怎麼樣搭建源碼網站 瀏覽:427
新概念四冊pdf 瀏覽:361
怎麼下載悅虎檢測app 瀏覽:528
cad表達式命令 瀏覽:198
程序員去一個小公司值不值得 瀏覽:846
程序員做個程序多少錢 瀏覽:495
win10原始解壓軟體 瀏覽:319
阿里程序員的老家 瀏覽:258
量子加密銀行 瀏覽:193
命令方塊獲得指令手機 瀏覽:499
學習結束感言簡短程序員 瀏覽:398
android關機鬧鍾實現 瀏覽:968