如何在MFC中让一个按钮实现打开文件(弹出选择文件窗口)的功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MFC中让一个按钮实现打开文件(弹出选择文件窗口)的功能?相关的知识,希望对你有一定的参考价值。

做了个MFC小程序,是将html文件转成源代码txt文件的,具体代码是
ifstream fin("a.html");
ofstream fout("a.txt");
char c;
int flag;
while(fin>>c)
if(c=='<')
flag=0;
if(flag)
fout<<c;
if(c=='>')
flag=1;只能提取名字固定为a.html且必须是在程序所在文件的文件,如何通过一个按钮来实现可以随意选择html文件来处理的功能?(最好能详细点,新手)

1、打开软件。

2、新建工程,名字“canshuchuandi”。制作界面如图。编辑框变量设置为“m_a1”。

3、在资源视图,右键插入类“Cshow”制作界面,变量设置为“m_a2”。

4、双击原界面的“打开并传输”按钮,编辑事件处理程序如图。

5、双击新建的界面的“返回第一个对话框+6”按钮,编辑事件处理程序如图。

6、退出就完成了,点击按钮就可以弹出新窗口了。

参考技术A 添加一个按钮,把这段代码添加到按钮事件里面就可以了,刚写好的,试过了,可以用!

CString filename;//保存路径

CFileDialog opendlg (TRUE,_T("*"),_T("*.html"),OFN_OVERWRITEPROMPT, _T("所有文件(*.*;)|*.*||"),NULL);
if (opendlg.DoModal()==IDOK)

filename=opendlg.GetPathName();


ifstream fin(filename);
ofstream fout("a.txt");
char c;
int flag;
while(fin>>c)

if(c=='<')
flag=0;
if(flag)
fout<<c;
if(c=='>')
flag=1;
本回答被提问者采纳

从 MFC 中的文件打开对话框中选择文件后 fopen() 不起作用

【中文标题】从 MFC 中的文件打开对话框中选择文件后 fopen() 不起作用【英文标题】:fopen() does not work after choosing file from file open dialog in MFC 【发布时间】:2012-09-20 11:34:29 【问题描述】:

MFC 应用程序中,我有一个文件浏览按钮。当我单击它并选择一个文件时,该文件已加载并且一切正常。

在此之后我有一个函数,它尝试使用fopen(), 打开另一个文件,但尽管文件存在,但无法打开该文件。如果我在文件浏览对话框中选择取消,fopen() 可以正常工作,但一旦我使用文件浏览对话框选择文件,fopen 就不起作用。

有人能说出为什么会这样吗?

【问题讨论】:

能否分享一下代码。调试问题很困难,但代码更容易阅读。 无关,但我很好奇你为什么用fopen而不是fstream 可能像权限问题一样简单...检查 errno 以获取线索 我只需要检查文件是否存在所以我在做 FilePopinter = fopen("filename"); if(FilePopinter )...else... 但它不起作用。正如 Joachim Pileborg 所说,我尝试使用 ofstream::good() 并且它的工作正常我不知道如何:|总之谢谢大家。 fopen() 的第二个参数是什么?因为它通常需要其中 2 个(一个用于文件名,一个用于模式) 【参考方案1】:

也许您通过相对路径指定第二个文件,并且在使用对话框打开第一个文件后,工作目录已更改。当您按Cancel 时,工作目录不会更改并且可以正常工作。

此问题的解决方案是例如使用完整的非相对路径指定第二个文件。

【讨论】:

我尝试使用非相对路径,但它不起作用。相反,我使用 fsteam::good 检查文件是否存在并且工作正常。我不知道 fopen 出了什么问题,但 fstream 工作正常。无论如何,谢谢 Psur。

以上是关于如何在MFC中让一个按钮实现打开文件(弹出选择文件窗口)的功能?的主要内容,如果未能解决你的问题,请参考以下文章

MFC点击按钮打开对话框选择文件夹(不是文件)

怎么在MFC中打开一个文件,如单击一个按钮,然后弹出选择文件的框框,我需要打开这个文件!

MFC中想实现打开文件或文件夹,该怎么实现呢

用mfc怎么打开excel表格

MFC中怎样实现通过点击按钮而打开对话框选择文件,并将选择的txt文件内容导入到Listcontrol控件指定的列中。

MFC单击菜单项如何弹出对话框?