像使用通用文件对话框的时候可以使用文件过滤字符串来实现多个扩展名文件的选择但是在string table中怎么设? ‘|’不起作用了

解决方案 »

  1.   

    TCHAR szFilters[]=_T("Text files(*.txt)|*.txt|My File(*.mf)|*.mf||");
    CFileDialog dlg(TRUE,_T("txt"),_T("*.txt"),OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,szFilters);好像设置StringTable不能同时设置几个吧...(我不知道)
      

  2.   

    我的目的就是能够 不重载文档类的函数 如果不能设置string table的话 真的是太倒霉了
      

  3.   

    你可以设置几个字符资源,到时候用一个CString变量把他们一个个Format进来,然后再连起来吧。
      

  4.   

    void CTestApp::OnDoFileDialog()
    {
    CString OpenFilter;
    OpenFilter = "Text File (*.txt)|*.txt|";
    OpenFilter += "HTML File (*.htm;*.html)|*.htm;*.html|";
    OpenFilter += "All Files (*.*)|*.*||"; CFileDialog FileOpenDialog(
    TRUE,
    NULL,
    NULL,
    OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST,
    OpenFilter, // filter
    AfxGetMainWnd()); // the parent window
            FileOpenDialog.DoModal();
    }
      

  5.   

    TCHAR szFilters[] =
        _T("Text Files (*.txt;*.log;*.bak)\0*.txt;*.log;*.bak\0")
        _T("C++ Files (*.cc;*.cpp;*.h;*.hpp)\0*.cc;*.cpp;*.h;*.hpp\0");
    CFileDialog FileOpenDialog(TRUE);
    FileOpenDialog.m_ofn.lpstrFilter = szFilters;
      

  6.   

    我不是要CFileDialog中的过滤器的写法  我是想知道有什么办法可以直接利用string资源达到CFileDialog多文件列表的效果
    不管怎么说 先感谢各位的热心
      

  7.   

    我理解你的意思了,你的想法是从string资源中动态提取你想要的过滤字符串,这样不行吗,应该可以吧,我刚刚做了一个多文档的事例,在app wazid的advanc里填了自己的扩展文件后缀,发现string资源里有这么一项,你对照一下,应该可以的坐到的。
    IDR_ATYPE   \nA\nA\nA 文件 (*.abc)\n.abc\nA.Document\nA Document
    a是我的项目名称
      

  8.   

    abc是自定义的扩展名,在打开文件对话框的时候是有我定义的过录字符串。
      

  9.   

    to  suping() :
    像你这么做的话 打开文件对话框中的文件列表只有.abc和*.*的  我的意思是想在这个之上再添加一些列表 同时又不想使用CFileDialog