当前位置:首页 » 文件管理 » mfccfiledialog文件夹

mfccfiledialog文件夹

发布时间: 2022-05-08 17:02:34

❶ mfc序列化保存文件和CFileDialog保存文件的区别

序列化就是按自己定义的格式读写二进制文件。
后者是读写文件的类

❷ MFC如何实现文件夹选择对话框

今天写一个程序,其中一个功能是用对话框来选择一个文件夹的路径。可是以前常用的CFileDialog必须指定到文件,选择一个文件夹只能继续打开而不能返回这个路径,CFileDialog貌视也没有参数可以弄成选择文件夹的式样。上网找了找,CSDN里有人提供下面这个函数的用法:
CString
ShowSelectDirectoryDlg(const
CString
&
strDlgTitle)
{
char
szDir[MAX_PATH];
BROWSEINFO
bi;
ITEMIDLIST
*pidl;
bi.hwndOwner
=
this->m_hWnd;
bi.pidlRoot
=
NULL;
bi.pszDisplayName
=
szDir;
bi.lpszTitle
=
strDlgTitle;
bi.ulFlags
=
BIF_RETURNONLYFSDIRS;
bi.lpfn
=
NULL;
bi.lParam
=
0;
bi.iImage
=
0;
pidl
=
SHBrowseForFolder(&bi);
if(pidl
==
NULL)
return
_T();
if(!SHGetPathFromIDList(pidl,
szDir))
return
_T();
这个函数的传入参数strDlgTitle,就是选择文件夹对话框的标题栏名称。只需要模拟这个函数的写法,添加代码到特定的消息响应函数里去就可以了。

❸ mfc 用CFileDialog类获取保存路径 问题

CFileDialog dlg( FALSE );

if( IDOK == dlg.DoModal() )
{
AfxMessageBox( dlg.GetPathName() );
}

用CFileDialog dlg(FALSE,NULL,NULL,NULL,NULL);我这里也没有报错,但参数里并不是全NULL,里面有个dwFlags,默认参数并不是为NULL。

❹ 关于MFC的CFileDialog类的问题

太复杂,CFileDialog本来就有个文件同名提示选项,
CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );

OFN_OVERWRITEPROMPT?

❺ MFC弹出打开文件对话框(CFileDialog)

CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"AllFiles(*.*)|*.*||",AfxGetMainWnd());
dlg.m_ofn.lpstrInitialDir="C:\";

设置默认路径为c:\.

打开文件夹的风格是系统默认的吧,不能修改吧

❻ 【MFC】CFileDialog filedlg(true);什么意思

CFileDialog filedlg(true);表示创建一个打开文件的对话框

其他性质不变。

函数原型:

CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName =

NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter =

NULL, CWnd* pParentWnd = NULL );

BOOL bOpenFileDialog
该参数为指定true是Open,false是Save as 对话框。

LPCTSTR lpszDefExt
添加到没有扩展名文件上的扩展名

LPCTSTR lpszFileName
应该初始选定的文件名

DWORD dwFlags
自定义标志,当要进行多选的时候添加OFN_ALLOWMULTISELECT

LPCTSTR lpszFilter
File of type中的过滤参数

❼ MFC 单文档中CFileDialog的具体用法步骤

创建工程的时候,默认就有工具条的。
如果你还要加的话,
资源编辑器中编辑,在oncreate函数中,添加代码挂接资源即可。

❽ 如何让CFileDialog同时选择文件和文件夹

提供你一个思路:
自己实现一个对话框程序,对话框中枚举出目录和文件,然后选择等可以自己想怎么处理就怎么处理 :)

枚举用CFileFind等MFC类就可以。

❾ MFC,cfiledialog怎么打开多个图

打开多图示例代码:

	CFileDialogff(TRUE,NULL,NULL,OFN_ENABLESIZING|OFN_ALLOWMULTISELECT|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST,_T("AllFiles(*.*)|*.*||"),this);
intMIN_FILE_NUMBER=20;//最多同时选中文件数
ff.m_ofn.lpstrFile=newTCHAR[_MAX_PATH*MIN_FILE_NUMBER];//重新定义缓冲区大小
memset(ff.m_ofn.lpstrFile,0,_MAX_PATH*MIN_FILE_NUMBER);//初始化定义的缓冲区
ff.m_ofn.nMaxFile=_MAX_PATH*MIN_FILE_NUMBER;
CStringdir;
if(IDOK==ff.DoModal())
{
POSITIONpos=ff.GetStartPosition();
while(NULL!=pos)
{
dir=ff.GetNextPathName(pos);//获取文件名
;//这里自己将文件名保存到需要的地方
}
}

❿ MFC中请问能不能用一个CFileDialog同时打开多个文件那样是怎么设置的呢

CFileDialog 打开多个文件2006-12-01 17:28从CFileDialog派生一个类MFileDlg: 头文件://///////////////////////////////////////////////////////////////////////////

// MFileDlg dialogclass MFileDlg : public CFileDialog

{

DECLARE_DYNAMIC(MFileDlg)public:

MFileDlg(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs

LPCTSTR lpszDefExt = NULL,

LPCTSTR lpszFileName = NULL,

DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,

LPCTSTR lpszFilter = NULL,

CWnd* pParentWnd = NULL);

int DoModal();

virtual ~MFileDlg();

protected:

//{{AFX_MSG(MFileDlg)

// NOTE - the ClassWizard will add and remove member functions here.

//}}AFX_MSG TCHAR* m_pszFile;

////////

DECLARE_MESSAGE_MAP()}; 类实现://///////////////////////////////////////////////////////////////////////////

// MFileDlgIMPLEMENT_DYNAMIC(MFileDlg, CFileDialog)MFileDlg::MFileDlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,

DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :

CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)

{

m_pszFile = new TCHAR[2048]; //set a 2K buffer to hold selected files

m_pszFile[0] = '\0'; //initialize pointer;

}

BEGIN_MESSAGE_MAP(MFileDlg, CFileDialog)

//{{AFX_MSG_MAP(MFileDlg)

// NOTE - the ClassWizard will add and remove mapping macros here.

//}}AFX_MSG_MAP

END_MESSAGE_MAP()MFileDlg::~MFileDlg()

{

if (m_pszFile != NULL)

delete [] m_pszFile; //cleanup

}int MFileDlg::DoModal()

{

ASSERT_VALID(this);

ASSERT(m_ofn.Flags & OFN_ALLOWMULTISELECT); //make sure multiple file selection is on m_ofn.lpstrFile = m_pszFile; //initialize the OPENFILENAME structure

m_ofn.nMaxFile = 2048;

return CFileDialog::DoModal();

} 具体使用: MFileDlg dlg( TRUE,_T("TXT"),_T("*.TXT"),

OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,

_T("文本文件 (*.txt)|*.txt所有文件 (*.*)|*.*|"));

if(dlg.DoModal()!=IDOK) return FALSE; //取消操作 POSITION pos = dlg.GetStartPosition();

while (pos != NULL)

{

CString strPath = dlg.GetNextPathName(pos);

if (strPath.Find(":\\\\") == 1 && strPath.GetLength() > 4)

{

// this means we have an invalid path that looks like this:

// C:\\cda.dgl

// get rid of extra slash

CString temp;

temp = strPath.Left(3);

temp += strPath.Mid(4);

strPath = temp;

}

m_listFileNames.AddTail(strPath); //CStringList m_listFileNames

TRACE(_T("GetOpenFileName returned %s Files\r\n"),strPath);

}

热点内容
王者荣耀如何把安卓区的帐号改为苹果区的 发布:2024-11-18 17:43:13 浏览:120
linux释放空间 发布:2024-11-18 17:43:01 浏览:492
美国末日树林密码箱密码在哪里找 发布:2024-11-18 17:35:43 浏览:392
狗4运动相机怎么连接安卓手机 发布:2024-11-18 17:24:17 浏览:707
服务器为什么变红了 发布:2024-11-18 17:14:36 浏览:947
微星存储加速 发布:2024-11-18 16:58:10 浏览:852
钉钉辅助脚本 发布:2024-11-18 16:56:11 浏览:950
java的加减乘除 发布:2024-11-18 16:50:35 浏览:583
nginx怎么访问php 发布:2024-11-18 16:22:55 浏览:304
蚂蚁外快赚钱脚本 发布:2024-11-18 16:21:52 浏览:179