CFileDialog以保存对话框的方式打开,打开桌面文件夹时,窗口会在很长的时间里死掉,过一会儿,才恢复正常。不管是把桌面设成默认目录,还是从其他文件夹切换过来,都会导致这种情况。

解决方案 »

  1.   

    估计楼主的代码哪里有问题,应该不是CFileDialog的问题
      

  2.   

    说一下我曾遇到过的一个问题,楼主或许有用。
    有一次我OA的E盘在右键刷新后跟死了一样要好半天才能回过来,为此我把此盘上的东西备份过然后格式化然后再一个一个的把东西再放进来。后来才发现原来这有一个我系统上没有的格式的文件,所以每次刷新时它都要老半天。楼主不妨也看看。
      

  3.   

    桌面上的xml文件的图标都变成Dos程序的那种图标了,把这些文件从桌面上删掉后,再使用CFileDialog就正常了。
    看来是这个原因引起的。为什么会这样,请大家帮忙分析一下。
      

  4.   

    其他的程序,比方ie的打开对话框,同样的情况下就不会有这个原因。下边是调用CFileDialog的代码:CString CProfileXml::XmlInFilename()
    {
    TCHAR fileFilter[]    = _T("*.xml|*.xml|");  
    CString title         = _T("Open Profile File");
    CString defaultFolder = GetMyDesktop(); CFileDialog fileOpen(TRUE,                                      //TRUE打开对话框,FALSE保存对话框
    NULL,
    NULL,               
    OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT,     
    fileFilter);
    fileOpen.GetOFN().lpstrInitialDir = defaultFolder;
    fileOpen.GetOFN().lpstrTitle      = title; if (IDOK == fileOpen.DoModal())
    {
    return fileOpen.GetPathName();
    } return CString("");
    }
      

  5.   


    应该是这种问题,但我用ie打开某个文件时,它弹出的那个打开对话框就没这种情况。用CFileDialog打开的对话框和用IE打开的,我想应该是同一个东西吧。
    这就感觉有点奇怪了。