我用向导生成单文挡程序,现在想修该筛选器,怎么做啊?有怎么得到筛选器的不同的值?(例如,word里面即可以打开.doc又可以打开.txt).还有就是对话框对象好像不是在CDocument里面定义的,他是在哪里定义的?谢谢!

解决方案 »

  1.   

    CFileDialog dlg(...);
    dlg.m_ofn.lpstrFilter = "WORD Files(*.doc)\0*,doc\0JPEG Files(*.jpg;*.jpeg)\0*.jpg;*.jpeg\0ALL files(*.*)\0*.*\0\0";
    以注意两个"\0"结尾
      

  2.   

    但是这段代码在哪个文件中啊?因为文件对话框CDocument类的OnOpenFile()里面生成对象,他是在哪里申明对话框对象的?
      

  3.   

    但是这段代码在哪个文件(哪个类)中啊?因为文件对话框不是在CDocument类的OnOpenFile()里面申明对象,他是在哪里申明对话框对象的?
      

  4.   

    参考下面的代码:  在APP中响应 ID_FILE_OPEN 菜单消息ID:void CTilingsApp::OnFileOpen() 
    {
    // TODO: Add your command handler code here
    static CString m_strPath;
    static int m_iFilter = 0; TCHAR cBuf[51200]="\0";       // 允许一次打开多个文件
    CFileDialog dlg(TRUE,NULL,0,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
    _T( "所有图灵机文件|*.twa;*.tct;*.tdt;*.ttd;*.tcb;*.tdb|"
    "图灵机工作区文件(*.twa)|*.twa|"
    "图灵机指令文件(*.tct)|*.tct|"
    "图灵机数据文件(*.tdt)|*.tdt|"
    "图灵机磁带文件(*.ttd)|*.ttd|"
    "已编译图灵机指令文件(*.tcb)|*.tcb|"
    "已编译图灵机数据文件(*.tdb)|*.tdb|"
    "所有文件(*.*)|*.*||"),
    m_pMainWnd);
    dlg.m_ofn.nFilterIndex = m_iFilter;
    dlg.m_ofn.lpstrInitialDir = m_strPath;
    dlg.m_ofn.lpstrFile = cBuf;
    dlg.m_ofn.nMaxFile = 51200; if(IDOK!=dlg.DoModal())
    return;
    // get file name
    CString strFile; m_iFilter=dlg.m_ofn.nFilterIndex;
    POSITION pos=dlg.GetStartPosition();
    while(pos)
    {
    strFile=dlg.GetNextPathName(pos);
    OpenDocumentFile(strFile); }
    int iPos=strFile.ReverseFind('\\');
    if (iPos>0)
    m_strPath=strFile.Left(iPos);
    }