| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3127 人关注过本帖
标题:怎么去掉保存类型中的“所有文件(*.*)”
只看楼主 加入收藏
天地乾坤
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-11-21
收藏
 问题点数:0 回复次数:17 
怎么去掉保存类型中的“所有文件(*.*)”
采用VC作文件的存储读取,自定义了一个文件扩展名(例如dvp),在保存文件时弹出的保存为对话框中的保存类型就会出现两个选项:一个是所有文件(*.*)、一个是刚才定义的类型.dvp。
请问,怎样去掉“所有文件 (*.*)”这个选项啊?只要刚才定义的文件类型。
谢谢了先!
搜索更多相关主题的帖子: 类型 文件 保存 
2006-05-17 11:06
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
对于简单的用CFileDialog打开的文件,可以在打开文件的Dialog object 里定义:

static char BASED_CODE szFilter[] = ".DVP Files (*.dvp)|*.dvp|";
CFileDialog fileDlg(TRUE, _T("*.dvp"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT, szFilter, this);
另外对每一个单文档文件,在建立的时候你可以声明这个单稳当文件可对应一个后缀的文件名,这样VC会在registry里给你注册.dvp文件和你的单稳当程序的调用关系,如果你想建立这种关系的话。

http://myajax95./
2006-05-17 13:41
天地乾坤
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-11-21
收藏
得分:0 
谢谢斑竹!
我的是SDI,没有使用到CFileDialog这个类啊,怎么弄呢?
您说的“在建立的时候你可以声明这个单稳当文件可对应一个后缀的文件名”可否详细点?谢谢!
2006-05-18 09:34
WindyGo
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-10
收藏
得分:0 
你可以用向导添加事件的方式解决。
打开“建立类向导”,在你程序的文档类(C*Doc)中添加ID_FILE_OPEN的COMMAND命令,点击“确定”,再点击“确定”。在生成程序代码中添加以下部分:
static char BASED_CODE szFilter[] = ".DVP Files (*.dvp)|*.dvp|";
CFileDialog fileDlg(TRUE, _T("*.dvp"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT, szFilter, NULL);
if(fileDlg.DoModal()==IDOK)
if (!OnOpenDocument(fileDlg.GetPathName()))
AfxMessageBox("Open file faild!");
else
{
SetTitle(fileDlg.GetFileName());
SetPathName(fileDlg.GetPathName());
}

[此贴子已经被作者于2006-5-19 12:08:57编辑过]


2006-05-18 10:18
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用天地乾坤在2006-5-18 9:34:00的发言:
谢谢斑竹!
我的是SDI,没有使用到CFileDialog这个类啊,怎么弄呢?
您说的“在建立的时候你可以声明这个单稳当文件可对应一个后缀的文件名”可否详细点?谢谢!

建立单文档文件的时候第四部点Advance,弹出窗口中File extension里写dvp。


http://myajax95./
2006-05-18 11:40
天地乾坤
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-11-21
收藏
得分:0 
以下是引用myajax95在2006-5-18 11:40:00的发言:

建立单文档文件的时候第四部点Advance,弹出窗口中File extension里写dvp。

我就是这样做的,但是,在保存或是打开保存的文件时,文件类型里面除了有.dvp外,还有“所有文件 (*.*)”,我是想在打开或者保存文件时,文件类型里面只有.dvp。

2006-05-18 19:11
天地乾坤
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-11-21
收藏
得分:0 
以下是引用WindyGo在2006-5-18 10:18:00的发言:
你可以用向导添加事件的方式解决。
打开“建立类向导”,在你程序的文档类(C*Doc)中添加ID_FILE_OPEN的COMMAND命令,点击“确定”,再点击“确定”。在生成程序代码中添加以下部分:
static char BASED_CODE szFilter[] = ".DVP Files (*.dvp)|*.dvp|";
CFileDialog fileDlg(TRUE, _T("*.dvp"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT, szFilter, NULL);
if(fileDlg.DoModal()==IDOK)
if (!CDocument::OnOpenDocument(fileDlg.fileDlg.GetPathName()))
AfxMessageBox("Open file faild!");

按照您给的方法,可以实现在打开保存的文件时,文件类型里面只有.dvp了!但是,代码不完整吧?选择了要打开的文件后,点确定,没有导入先前保存的东西呢??

2006-05-18 19:25
天地乾坤
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-11-21
收藏
得分:0 

谢谢两位高手!
那么对ID_FILE_SAVE也要做类似的处理吗?里面的代码怎么写啊?谢谢了先!

2006-05-18 19:28
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
用5楼的方法就不需要处理。
用2楼或4楼的方法就要把code放在ID_FILE_SAVE里。

http://myajax95./
2006-05-18 23:41
WindyGo
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-10
收藏
得分:0 
我把代码修改了一下,你再看看能否打开文件.
保存文件也象上面一样,不过稍微复杂点.
在另存为事件中把此代码加入,
并且把OnOpenDocument修改成OnSaveDocument.
还要把
CFileDialog fileDlg(TRUE, _T("*.dvp"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT, szFilter, NULL);
修改成
CFileDialog fileDlg(FALSE, _T("*.dvp"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT, szFilter, NULL);
在保存事件中加入此代码
去掉CFileDialog fileDlg(TRUE, _T("*.dvp"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT, szFilter, NULL);
并且要判断文件是否修改,这些我就不用多说了.

2006-05-19 09:36
快速回复:怎么去掉保存类型中的“所有文件(*.*)”
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026855 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved