因为自己写的小程序可以保存4种扩展名的文件,于是我的代码如下: // TODO: 在此添加命令处理程序代码
TCHAR szFilters[]= _T("tex Files (*.tex)|*.tex|txt Files (*.txt)|*.txt|svg Files (*.svg)|*. svg|png Files (*.png)|*.png|");
CFileDialog FileDialog(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilters, NULL);   CString  FileName; if(FileDialog.DoModal()==IDOK)   
{   
//添加代码
//CString str = FileDialog.GetFileName();
}现在我想根据用户选择的扩展名来决定文件保存的具体方法。(不同文件格式保存的方法不一样。)
请问我怎样才能获得用户选择的是哪个扩展名?

解决方案 »

  1.   


    CFileDialog FileDlg(false,_T("txt"),NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR, 
    szFilter,NULL);
      

  2.   

    那个结构体的返回值当中肯定包含这个了,查MSDN
      

  3.   

    给你段代码,通过FileDialog.m_ofn.nFilterIndex可以判断选择的索引 TCHAR szFilters[]= _T("tex Files (*.tex)|*.tex|txt Files (*.txt)|*.txt|svg Files (*.svg)|*. svg|png Files (*.png)|*.png|");
        CFileDialog FileDialog(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilters, NULL);  

        CString  FileName;

        if(FileDialog.DoModal()==IDOK)   
        {   
    switch (FileDialog.m_ofn.nFilterIndex)
    {
    case 1:
    {
    TRACE("tex\r\n");
    break;
    }
    case 2:
    {
    TRACE("txt\r\n");
    break;
    }
    case 3:
    {
    TRACE("svg\r\n");
    break;
    }
    case 4:
    {
    TRACE("png\r\n");
    break;
    }
    }
        }
      

  4.   


    顶一个,忘了还有个GetFileExt了,很少用