Visual Studio 2008 写 c++程序

来源:百度知道 编辑:UC知道 时间:2024/06/18 15:12:28
CFileDialog dlgFile(FALSE);
CString str1,str2;
str1="My save";
dlgFile.m_ofn.lpstrTitle=str1;
str2="Text Files(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0"; dlgFile.m_ofn.lpstrFilter=str2;
如果按这种写只能显示Text Files(*.txt),而且没有过滤功能。
中的str2 应该怎么写才会在保存文件对话框显示不同的扩展名并且实现过滤功能呢?

是谁告诉你这样写的? “\0”不能随便用的
这是MSDN上一段1标准写法
szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";

注意最后要用双"||"

请这样使用:

void CMyClass::OnFileOpen()
{
// szFilters is a text string that includes two file name filters:
// "*.my" for "MyType Files" and "*.*' for "All Files."
TCHAR szFilters[]= _T("MyType Files (*.my)|*.my|All Files (*.*)|*.*||");

// Create an Open dialog; the default file name extension is ".my".
CFileDialog fileDlg(TRUE, _T("my"), _T("*.my"),
OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);

// Display the file dialog. When user clicks OK, fileDlg.DoModal()
// returns IDOK.
if(fileDlg.DoModal() == IDOK)
{
CString pathName = fileDlg.GetPathName();