VC++打开、保存文件对话框和浏览文件夹对话框
一。打开文件夹:
1。CFileDialog实现
CFileDialog hFileDlg(true,NULL ,
NULL,
OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,
TEXT("驱动文件 (*.sys)|*.sys|所有文件(*.*)|*.*|"),
NULL);
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;
GetModuleFileName(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);
}
VC++打开、保存文件对话框和浏览文件夹对话框相关推荐
- MFC实现打开、保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了
MFC实现打开.保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了 一.打开.保存对话框 文件对话框属于通用对话框范畴(另外还有颜色,查找,查找替换,字体,打印等对话框). ...
- NetBeans 打开/保存具有指定编码的文件插件
NetBeans 编码插件 此插件打开/保存具有指定编码的文件. 要求 NetBeans8.2+ 以编码方式打开/保存 文件 > 以编码方式打开/保存... 在状态行显示编码 当前文件编码将显示 ...
- linux文件浏览 ls,linux浏览文件命令
在linux下我们要浏览文件的内容,可以通过相关的命令来执行操作,下面由学习啦小编为大家整理了linux下浏览文件命令的相关知识,希望对大家有所帮助! linux浏览文件命令1.cat [功能说明] ...
- VC++ 打开文件夹,保存文件等对话框的调用
2019独角兽企业重金招聘Python工程师标准>>> VC++ 打开文件夹,保存文件等对话框的调用 一.打开文件夹: 1.CFileDialog实现 CFileDialog hFi ...
- VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)
右击项目->属性->字符集:使用多字节字符集. 这样可以使用char到CString的转化. char sRead[20] = ""; CString strtest ...
- VC 文件操作大全,打开,保存,复制,删除,查找等
各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 的代码.本文对Visual C++中有关文件操作进行了全面的 ...
- 弹出打开/保存文件对话框 选择文件夹对话框
打开/保存文件对话框: CFileDialog::CFileDialog(BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框LPCTSTR ...
- Archicad二次开发——MessageBox、USstring转字符、打开保存文件的对话框获取选择的地址、获取文件信息
先吐槽一句,Archicad的二次开发实在太不友好(我技术太菜). 1.MessageBox MessageBox(NULL, "message","title" ...
- MFC文件操作大全,打开,保存,复制,删除,查找等
各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 的代码.本文对Visual C++中有关文件操作进行了全面的 ...
最新文章
- Oracle --获取绑定变量的值.
- RabbitMQ 如何消息生产者producer发送给RabbitMQ服务器broker?
- body添加代码 js_hexo 博客添加评论和阅读量
- 用 easy-json-schema 代替 json-schema 吧
- 微服务下的容器部署和管理平台Rancher
- 关于将一个数输出为原码、反码和补码的解惑
- python 文件操作 os.walk() 方法
- c语言中有bool型变量吗?
- cs文件中控制页面table的大小、title名称(.aspx)
- vavr_使用Vavr在Java 8流中更好的异常处理
- 用SMO算法实现了SVM的感悟
- JAVA毕设项目宠物店管理系统设计与实现(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
- MyBatis开发文档
- 画图工具的认识及应用计算机,认知画图软件教学设计
- 我的2016——我和嵌入式的那些事
- 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
- macOS 上编译 Dynamips
- 如何找出当前活动桌面背景图像的位置/路径(Ubuntu 18.04,GNOME)?
- 湖南省中职计算机应用教资笔试+面试心得
- 三国志战略版新赛季:先锋斥候北定中原