社区
C++ 语言
帖子详情
请问如何在mfc基于对话框中实现打开文件这个功能?
grmoney
2007-09-06 07:32:15
要求:我新建一个button按钮。。然后我点击他就弹出我们平时打开文件的对话框。。上面有目录。。然后我选择文件(要求txt的)。。然后我读取了这个文件并显示在另一个edit框中。。。。。。。请问怎么实现。。新手刚学mfc。望高手指点。。。请详细说明。。不要给我帖一段代码。。。。谢谢
...全文
666
8
打赏
收藏
请问如何在mfc基于对话框中实现打开文件这个功能?
要求:我新建一个button按钮。。然后我点击他就弹出我们平时打开文件的对话框。。上面有目录。。然后我选择文件(要求txt的)。。然后我读取了这个文件并显示在另一个edit框中。。。。。。。请问怎么实现。。新手刚学mfc。望高手指点。。。请详细说明。。不要给我帖一段代码。。。。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
grmoney
2007-09-06
打赏
举报
回复
谢谢各位了。。结帖了。。。
lfcai
2007-09-06
打赏
举报
回复
学习下~~~~~~~~~
jhs1982419
2007-09-06
打赏
举报
回复
我是这么做的,你可以借鉴下.
char path[MAX_PATH];; //用来存储路径的字符串
BROWSEINFO bi;//接收用户所选择的文件夹的参数信息
//ZeroMemory(&bi, sizeof(bi));//清空bInfo在内存中的空间,全部置零
bi.hwndOwner = AfxGetApp()->m_pMainWnd->GetSafeHwnd();//得到对话框父窗口的句柄
//CImageRetrievalApp* pApp = (CImageRetrievalApp*) AfxGetApp();//需要进行类型转换
//bi.hwndOwner = pApp->GetMainWnd()->GetSafeHwnd();//GetMainWnd()所得到的就是m_pMainWnd
bi.pidlRoot = NULL;
bi.pszDisplayName = path;
bi.lpszTitle = _T("请选择进行检索的图像库: ");//在对话框中显示字符
bi.ulFlags = BIF_EDITBOX|BIF_RETURNONLYFSDIRS; //增加一个编辑控件,用户可以在里面直接输入路径条目
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
LPITEMIDLIST pidl; //用来保存返回信息的IDList
pidl = SHBrowseForFolder(&bi) ; //显示一可以使用户选择文件夹的对话框,返回值为LPITEMIDLIST类型
if(pidl != NULL) //用户按了确定按钮
{
pView->m_JiShu = 0;
pView->m_Seek_ListCtrl.DeleteAllItems();//以前检索的所有的图像列表全部清空
// pView->Seekimagepath = "";//清空显示图像
pView->Seekimage.load(" null.jpg");
for (int i=0;i<32;i++)//清空最前面图像的显示
{
pView->SelectImage[i].load(" null.jpg");
}
SHGetPathFromIDList(pidl, path);//把项目标识列表转化成字符串
FilePath = path; //将CHAR类型的字符串转换为CString类型的字符串
FilePath += "\\"; //在路径后好加上文件的名字
}
CHAR szFind[MAX_PATH];
lstrcpy(szFind, FilePath);
lstrcat(szFind, "*.jpg"); // 找所有jpg文件
//hFind = FindFirstFile(szFind, &FileData);
//if (FindFirstFile(szFind, &FileData) == INVALID_HANDLE_VALUE)
if((pView->hFind = FindFirstFile(szFind, &(pView->FileData))) == INVALID_HANDLE_VALUE)
{
pView->MessageBox("该文件夹中没有jpg图像,请重新选择");
return ;
}
bi.iImage = 0;
LPITEMIDLIST pidl; //用来保存返回信息的IDList
pidl = SHBrowseForFolder(&bi) ; //显示一可以使用户选择文件夹的对话框,返回值为LPITEMIDLIST类型
gfxiang
2007-09-06
打赏
举报
回复
假设你已经为edit控件定义了一个CString类型的成员变量m_str关联起来
那button的click消息处理函数里,加入如下代码
CFileDialog dlg(TRUE, ".txt", NULL, 0, "Text Files (*.txt)|*.txt|All Files(*.*)|*.*||");
if (dlg.DoModal() == IDOK)
{
m_str = dlg.GetPathName();
UpdateData(FALSE);
}
jixingzhong
2007-09-06
打赏
举报
回复
http://www.vckbase.com/document/viewdoc/?id=1419
看看这个也许有帮助...
jixingzhong
2007-09-06
打赏
举报
回复
更多信息,例子,查询 MSDN
jixingzhong
2007-09-06
打赏
举报
回复
简单例子:
CFileDialog dlg( FALSE,NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"JPEG(*.JPG,*.JPE),BMP(*.BMP,*.RLE),TIFF(*.TIF)|*.BMP;*.RLE;*.JPG;JPE;*.TIF;*.TIFF|BMP(*.BMP,*.RLE)|*.BMP;*.RLE|JPEG(*.JPG,*.JPE)|*.JPG;JPE|TIFF(*.TIF)|*.TIF;*.TIFF|*.*|", NULL );
保 存 : 【仅仅是参数不一样】
CFileDialog dlg(TRUE,NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"JPEG(*.JPG,*.JPE),BMP(*.BMP,*.RLE),TIFF(*.TIF)|*.BMP;*.RLE;*.JPG;JPE;*.TIF;*.TIFF|BMP(*.BMP,*.RLE)|*.BMP;*.RLE|JPEG(*.JPG,*.JPE)|*.JPG;JPE|TIFF(*.TIF)|*.TIF;*.TIFF|*.*|", NULL );
然后在选择文件后,
CFileDialog->GetFileName() //或者其他成员方法,获得文件名
然后打开这个文件,
然后读取内容,显示即可
jixingzhong
2007-09-06
打赏
举报
回复
CFileDialog
VC++基于
mfc
实现
对话框
打开读取txt文件
VC++基于
mfc
实现
对话框
打开读取txt文件 VC++基于
mfc
实现
对话框
打开读取txt文件
MFC
对话框
框架,调用opencv打开摄像头/视频文件/图像文件,实时处理视频(原创)
MFC
下编写的
对话框
程序,打开摄像头/视频文件/图像文件。基于opencv下的Mat类,避免了内存管理问题。此代码为开发图像/视频处理软件开发提供良好的参考。
2048
MFC
对话框
小游戏
基于
MFC
对话框
的2048小游戏,里面包含了所有相关文件。打开Visual Studio按F5即可开始游戏
基于
对话框
的简易绘图软件
运用vc++,基于
对话框
的简易绘图软件,能够
实现
保存和
打开文件
,选择颜色和线宽等
功能
。
VC.NET如何在文件
对话框
中
预览位图文件
对话框
中
使用缩略图
功能
,CBmpFileDialog类
实现
的文件
功能
,如何在打开
对话框
中
预览图片文件的示例,虽然预览的图像不是太清淅,但至少可以让人看清楚图片的内容是什么,还可显示出图片的宽高像素大小,实际占用字节...
C++ 语言
64,676
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章