使用MFC文档视图结构,在打开文件对话框 ,的文件类型列表中不想 不显示 *.*,我改如何去做,我仅仅知道在IDR_MAINFRAME字符串资源中,修改 CDocTemplate::filterName 和CDocTemplate::filterExt ,就可以出现我所需要的类型,但是如何不显示*.*呢? 

解决方案 »

  1.   


    explicit CFileDialog(
       BOOL bOpenFileDialog,
       LPCTSTR lpszDefExt = NULL,
       LPCTSTR lpszFileName = NULL,
       DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
       LPCTSTR lpszFilter = NULL,
       CWnd* pParentWnd = NULL,
       DWORD dwSize = 0
    );CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("Audio files (mp3)(*.mp3)|*.mp3||"), this)
      

  2.   

    在CfileDialog类的构造函数中通过第5个参数控制,主要代码如下:
    参数格式只有"*.xls|*.xls|*.ppt|*.ppt||"这样才能有效,这里分两组,其中(扩展名|扩展名)不一定要写两次,其中第一个是用来显示用的,比较你在下拉列表框中选择文件名时显示的描述信息,第二个是真正系统采用的扩展名,比如"gif图片文件|*.gpf",这样在你的打开文件列表框中显示的是"gif图片文件".记住最后一定要是两个"|"结束。
    CFileDialog dlg(true, NULL, NULL, NULL, "*.xls|*.xls|*word文档|*.doc||");
    if(dlg.DoModal() != IDOK)
    return; strFileName = dlg.GetPathName();
      

  3.   

    多谢楼上的朋友,问题是 我使用的是MFC文档视图结构,想采用这个框架中这个文件打开的功能,我不知道我该重载哪个函数,然后在其中写 CFileDialog ?
      

  4.   

    文档/视图结构 在CDocManager类的DoPromptFileName函数中构造了一个CFileDialog 的对象:fileDlg 该如何处理呢?
      

  5.   

    要在资源文件里面的String Table,找到IDR_你的程序项目名称TYPE字段,改变其中对应的位置即可。你也可以在创建的时候设定。