VC++设置文件打开格式问题,如何打开指定类型的文件?

AddFiles.m_ofn.lpstrFilter="dswfiles(*.dsw)|*.dsw|dspfiles(*.dsp)|*.dsp|cppfiles(*.cp... AddFiles.m_ofn.lpstrFilter = "dsw files(*.dsw)|*.dsw|dsp files(*.dsp)|*.dsp|cpp files(*.cpp)|*.cpp|head files(*.h)|*.h|All files(*.*)|*.*||";
为什么打开文件时显示的格式都在一行里面,宣布了类型,如下如所示:

而不是可以选择打开其中某一种类型的呢,比如想打开*.cpp类型的或者*.dsw类型的,请问要怎么修改这一行代码才可以实现啊?
展开
 我来答
tattackor
2015-10-29 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:887万
展开全部
1、其实之所以要使用文件类型,只是为了方便软件认识,让后进行关联。它不是必要的。比如说 *.doc 文件,默认关联的程序是 Microsoft Word 。关联程序的意思是,双击这个文件,会自动用 Microsoft Word 打开它。

2、但这只是默认的,可以通过下面的步骤来修改打开 *.doc 文件的默认程序:
【在文件上右击-打开方式-选择程序,选择一个软件】,比如说金山的 wps。
那么下次双击 *.doc 文件,就是用金山 wps 打开了。
综上所述,一种类型的文件,是可以用多种软件打开的(*.doc 可以用 WORD 打开,也可以用 WPS 打开,当然还可以用其他程序打开,这要它能识别文件的格式。)。加上文件类型,可以让程序方便的找到自己能识别的文件。当然,没有文件类型,文件的内容(一串二进制数字)其实是一样的,程序还是能打开的。
比如说有个文件叫 a.doc,你双击它,默认会用 Microsoft Word 打开。
把它重命名为 a (注意没有文件类型后缀),你双击打,操作系统就【不知道】怎么打开这个文件了。这时候,操作系统会跳出一个对话框,让你选择打开这个文件的程序。如果你选择了 Microsoft Word ,还是可以正常打开这个文件的。
这才是文件类型真正的作用。
空雪梦见
2013-05-22 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1195万
展开全部
因为不是用竖线分隔,GetOpenFileName里面lpstrFilter用\0分隔
AddFiles.m_ofn.lpstrFilter = "dsw files(*.dsw)\0*.dsw\0dsp files(*.dsp)\0*.dsp\0cpp files(*.cpp)\0*.cpp\0head files(*.h)\0*.h\0All files(*.*)\0*.*\0";
改成这样再试一下。mfc我不会用,不过至少直接调用api的话是这样的,猜测mfc是一样
追问
对了,不过最后面还少个\0
追答
字符串末尾本身就有个0的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eicaddev
2013-05-21 · TA获得超过240个赞
知道小有建树答主
回答量:223
采纳率:66%
帮助的人:73.2万
展开全部
static TCHAR BASED_CODE szFilter[] = _T("图形文件 (*.DWG)|*.DWG|CPP文件(*.CPP)|*.cpp|所有文件 (*.*)|*.*||");
CFileDialog FileDlg(TRUE, _T("DWG"), SFileName, OFN_HIDEREADONLY | OFN_ENABLESIZING, szFilter, NULL);
FileDlg.m_ofn.lpstrTitle = _T("选择文件");
if (FileDlg.DoModal() != IDOK) return;
SFileName = FileDlg.GetPathName();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式