CFileDialog fileDlg(FALSE);
fileDlg.m_ofn.lpstrTitle="我的文件保存对话框";
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
fileDlg.m_ofn.lpstrDefExt="txt";
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeCreate | CFile::modeWrite);
file.Write("http://www.sunxin.org",strlen("http://www.sunxin.org"));
file.Close();
}
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
这段代码 是什么意思 大家给我解释一下??尤其是="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0"这个语句 ???
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
这个过滤器就是这个对话框的下面的组合框下拉时过滤文件格式的条件
或者选择打开所有文件
1、你选择的文件的文件名
2、你选择的文件的路径
3、你选择的文件的全名(包含路径)
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
是过滤你要选择文件的类型
Text Files(*.txt) 对应的打开文件类型是 *.txt,也就是txt后缀的文件
0All Files(*.*) 对应的打开文件类型是*.*,也就是所有文件
//这个是字符串数组的格式
//每个字符串之间以\0分隔,以\0\0表示结束。//MSDN上有详细说明
你有什么疑惑呢?MSDN上有这个格式的说明
至于CFileDialog怎么认得这个格式?它是通过解析这个字符串来添加到那个下拉框的
你传递的是个字符串地址给fileDlg.m_ofn.lpstrFilter,内部会搜索这个字符串直到遇到两个\0解析结束