失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MFC实现打开 保存文件对话框和浏览文件夹对话框 把代码直接拷贝到要响应的按钮函数

MFC实现打开 保存文件对话框和浏览文件夹对话框 把代码直接拷贝到要响应的按钮函数

时间:2019-04-21 14:26:53

相关推荐

MFC实现打开 保存文件对话框和浏览文件夹对话框 把代码直接拷贝到要响应的按钮函数

MFC实现打开、保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了

一、打开、保存对话框

文件对话框属于通用对话框范畴(另外还有颜色,查找,查找替换,字体,打印等对话框)。

借助MFC现成的类CFileDialog你可以轻易操作文件对话框。

CFileDialog dlg( TRUE, _T( "txt" ), _T( "b.txt" ), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T( "文本|*.txt|所有文件|*||" ) );

if ( dlg.DoModal() == IDOK ) {

// dlg.GetPathName();

}

// 打开文件对话框,弹出对话框选择路径保存文件 [4/13/ shulei]

CString folderName;

CFileDialog dlg( FALSE, _T( "xls" ), _T( "" ), OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY, _T( "excel文件|*.xls|所有文件|*||" ) );

dlg.m_ofn.lpstrTitle=_T("数据保存为excel文件");

if ( dlg.DoModal() == IDOK ) {

folderName = dlg.GetPathName();

}

第一个参数TRUE:打开文件对话框,FALSE:保存文件对话框

第二个参数表示要打开文件的默认扩展名(保存文件是显得比较重要)

第三个参数表示要打开的目标文件名,如果未提供扩展名将使用第二个参数指定的名称

第四个参数 OFN_FILEMUSTEXIST表示目标必须存在, OFN_HIDEREADONLY不显示只读文件,还有些其他参数可用OFN_XXX自行检索之

第五个参数表示过滤字符串表,按照这个格式"标题|过滤表|标题|过滤表||"

二、浏览文件夹对话框

打开一个文件夹对话框没有现成的MFC类可用,需要借助一类称为Shell操控的API函数。三个步骤:配置对话框,打开对话框,获取返回值(文件夹路径)。

// 获取特定文件夹的LPITEMIDLIST,可以将之理解为HANDLE

// 所谓的特定文件夹,你可以用CSIDL_XXX来检索之。

LPITEMIDLIST rootLoation;

SHGetSpecialFolderLocation( NULL, CSIDL_DESKTOP, &rootLoation );

if ( rootLoation == NULL ) {

// unkown error

// return

}

// 配置对话框

BROWSEINFO bi;

ZeroMemory( &bi, sizeof( bi ) );

bi.pidlRoot = rootLoation; // 文件夹对话框之根目录,不指定的话则为我的电脑

bi.lpszTitle = _T( "对话框抬头" ); // 可以不指定

// bi.ulFlags = BIF_EDITBOX | BIF_RETURNONLYFSDIRS;

// 打开对话框, 有点像DoModal

LPITEMIDLIST targetLocation = SHBrowseForFolder( &bi );

if ( targetLocation != NULL ) {

TCHAR targetPath[ MAX_PATH ];

SHGetPathFromIDList( targetLocation, targetPath );

// MessageBox( targetPath );

}

MFC实现打开 保存文件对话框和浏览文件夹对话框 把代码直接拷贝到要响应的按钮函数下面就行了

如果觉得《MFC实现打开 保存文件对话框和浏览文件夹对话框 把代码直接拷贝到要响应的按钮函数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。