各位大哥:
    例如VC++工具栏上的打开文件按纽,它可以同时显示多类文件
请问在构建文件对话框时如何写才可以实现这样的功能。
例如:
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
       "bmp files (.bmp)|*.bmp|jpg file (.jpg)|*.jpg|");这样对话框每次只能显示BMP文件或者JPG文件
我想让JPG和BMP同时显示出来该如何创建(不能用*.*)。
小弟在这里先谢了

解决方案 »

  1.   

    用分号分开:
    CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
           "bmp&jpg files (bmp;jpg)|*.bmp;*.jpg");
      

  2.   

    CFileDialog dlg(TRUE,NULL,"",OFN_HIDEREADONLY,"视频文件(*.mpg;*.avi)|*.mpg;*.avi||",this);
      

  3.   

    可以这样来做,呵呵~~ CString sFilter;
    sFilter="常用图像(*.jpg;*.tif;*.bmp;*.pcx;*.gif,*png)|*.jpg;*.tif;*.bmp;*.pcx;*.gif,*png";
    sFilter+="|压缩图像(*.jpg;*.gif)|*.jpg;*.gif";
    sFilter+="|TIFF图像(*.tif)|*.tif";
    sFilter+="|PCX图像(*.pcx)|*.pcx";
    sFilter+="|位图文件(*.bmp)|*.bmp";
    sFilter+="|所有文件(*.*)|*.*||"; CFileDialog dlg(TRUE,NULL,NULL,0,(LPCSTR)sFilter);
    dlg.m_ofn.Flags|=OFN_ALLOWMULTISELECT|OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_LONGNAMES|OFN_PATHMUSTEXIST;//
    char buf[20480]="";
    dlg.m_ofn.lpstrFile=buf;
    dlg.m_ofn.nMaxFile=2048;
    dlg.m_ofn.lpstrTitle="选择图片文件";
    CString sInitPath ;
    //sInitPath = MyGetProfileString("LastTimePath", "OpenPath", "");
    dlg.m_ofn.lpstrInitialDir=(LPCTSTR)sInitPath;//初始化最初的路径。
    int ret=dlg.DoModal();
    if(ret!=IDOK)
    {
    return;
    }
    POSITION pos=dlg.GetStartPosition();
    if(pos==NULL)return ;
    CStringArray arrSourPath;
    while(pos!=NULL)
    {
    sarrFileList.Add(dlg.GetNextPathName(pos));
    }
      

  4.   

    CFileDialog Filedlg(TRUE,
    NULL,
    NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT|OFN_EXPLORER, 
    "Data Files (*.bak;*.txt)|*.bak;*.txt|All files(*.*)|*.*||",
    NULL); 

    if(Filedlg.DoModal() == IDOK)
    {
    CString strFilePath = Filedlg.GetPathName();
    }