如何设置CFileDialog(Save As)保存文件的默认类型?

myloveryao 2007-09-08 10:16:16
如题,小弟最近写了段代码,作用就是弹出“另存为”对话框,用户输入文件名后,按照默认文件类型保存生成文件。可是现在根本无法生成相应类型的文件,确切的说能生成文件,但不是设置的文件类型。

代码如下:

CFileDialog SaveDialog(false,NULL,"*.mission",OFN_NOCHANGEDIR |OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"任务文件(*.mission)|*.mission||");

if(IDOK==SaveDialog.DoModal())
{

CString cFilePath=SaveDialog.GetPathName();

if(test(cFilePath))
MessageBox("Save Successful!");
else
MessageBox("Save Failed!");

}

比如,我输入一个“123”,按照我的意思应该生成文件为123.mission,但是现在生成文件123,根本没有加上自己设置的文件类型。

请问高手,这个问题如何解决,急切等待中。。。
...全文
1491 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csbin_chen 2009-01-08
  • 打赏
  • 举报
回复
hoho....
小二码农 2009-01-06
  • 打赏
  • 举报
回复
第二个参数为默认扩展名,你设置为NULL,所以返回的文件名就没有扩展名
jixingzhong 2009-01-06
  • 打赏
  • 举报
回复
CFileDialog文件选择对话框的使用:
首先构造一个对象并提供相应的参数,构造函数原型如下:
CFileDialog::CFileDialog(
BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框
LPCTSTR lpszDefExt = NULL, //默认的文件扩展名
LPCTSTR lpszFileName = NULL, //默认的文件名
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格
LPCTSTR lpszFilter = NULL, //列出可供选择的文件类型和相应的扩展名
CWnd* pParentWnd = NULL //父窗口句柄指针
);

LPCTSTR lpszFilter 参数格式如:"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
zaodt 2007-09-10
  • 打赏
  • 举报
回复
在问题列表中,每个问题后面都有个管理,可以结贴。
lwqyu03 2007-09-09
  • 打赏
  • 举报
回复
CFileDialog SaveDialog(false,"*.mission","*.mission",OFN_NOCHANGEDIR |OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"任务文件(*.mission)|*.mission||");

if(IDOK==SaveDialog.DoModal())
{

CString cFilePath=SaveDialog.GetPathName();

if(test(cFilePath))
MessageBox("Save Successful!");
else
MessageBox("Save Failed!");

}
myloveryao 2007-09-09
  • 打赏
  • 举报
回复
对不起,不知道怎么给分啊!
myloveryao 2007-09-09
  • 打赏
  • 举报
回复
多谢两位,确实如你们所说,问题得以解决了。给你们散分吧!
zaodt 2007-09-08
  • 打赏
  • 举报
回复
执行以下代码试试看:
================================================

CFileDialog SaveDialog(FALSE , "mission");

SaveDialog.DoModal();

MessageBox(SaveDialog.GetFileName());

================================================


注意 CFileDialog 构造函数的第二个参数,MSDN如下说明:

lpszDefExt

The default filename extension. If the user does not include an extension in the Filename edit box, the extension specified by lpszDefExt is automatically appended to the filename. If this parameter is NULL, no file extension is appended.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧