CFileDialog打开桌面时的问题

glacierful 2009-07-06 03:52:34
CFileDialog以保存对话框的方式打开,打开桌面文件夹时,窗口会在很长的时间里死掉,过一会儿,才恢复正常。不管是把桌面设成默认目录,还是从其他文件夹切换过来,都会导致这种情况。
...全文
103 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
glacierful 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 longlongagoimboy 的回复:]
文件关联出现问题,刷新文件目录时用的时间太长。可能是安装了某个软件或文件管理被破坏。
[/Quote]
应该是这种原因,但IE调用这个对话框是没问题的。
有没有什么办法能解决这个问题?
zhouzhipen 2009-07-07
  • 打赏
  • 举报
回复
重装系统就可以解决问题了
glacierful 2009-07-07
  • 打赏
  • 举报
回复
其他的程序,比方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("");
}
glacierful 2009-07-07
  • 打赏
  • 举报
回复
桌面上的xml文件的图标都变成Dos程序的那种图标了,把这些文件从桌面上删掉后,再使用CFileDialog就正常了。
看来是这个原因引起的。为什么会这样,请大家帮忙分析一下。
byxdaz 2009-07-07
  • 打赏
  • 举报
回复
处理的数据/目录很多时,会出现这种情况.
glacierful 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 LongLongAgoImBoy 的回复:]
文件关联出现问题,刷新文件目录时用的时间太长。可能是安装了某个软件或文件管理被破坏。
[/Quote]

应该是这种问题,但我用ie打开某个文件时,它弹出的那个打开对话框就没这种情况。用CFileDialog打开的对话框和用IE打开的,我想应该是同一个东西吧。
这就感觉有点奇怪了。
Jimmy_Xia 2009-07-07
  • 打赏
  • 举报
回复
文件关联出现问题,刷新文件目录时用的时间太长。可能是安装了某个软件或文件管理被破坏。
波导终结者 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 glacierful 的回复:]
桌面上的xml文件的图标都变成Dos程序的那种图标了,把这些文件从桌面上删掉后,再使用CFileDialog就正常了。
看来是这个原因引起的。为什么会这样,请大家帮忙分析一下。
[/Quote]
结合13楼的情况,可能是文件内含有未知或者损坏的文件类型时,对话框要从注册里读取文件类型的相关信息,比如图标等,但由于某些原因导致用时过长。
kilven2201 2009-07-07
  • 打赏
  • 举报
回复
是BUG吧
glacierful 2009-07-07
  • 打赏
  • 举报
回复
别人用的时候,我不能要求别人重装系统啊。
danxuezx 2009-07-06
  • 打赏
  • 举报
回复
楼主先刷新看一下有没有类似的情况。
danxuezx 2009-07-06
  • 打赏
  • 举报
回复
说一下我曾遇到过的一个问题,楼主或许有用。
有一次我OA的E盘在右键刷新后跟死了一样要好半天才能回过来,为此我把此盘上的东西备份过然后格式化然后再一个一个的把东西再放进来。后来才发现原来这有一个我系统上没有的格式的文件,所以每次刷新时它都要老半天。楼主不妨也看看。
Conry 2009-07-06
  • 打赏
  • 举报
回复
网络共享连接多了吧
NTooL 2009-07-06
  • 打赏
  • 举报
回复
楼主硬盘要挂了。
  • 打赏
  • 举报
回复
打开时 是否做了其他的耗时操作
huliang66 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 oyljerry 的回复:]
是不是桌面上的文件,图标等太多了
[/Quote]

这个有可能
贪玩的老鼠 2009-07-06
  • 打赏
  • 举报
回复
你的文件扩展字符是否写对了啊,
在保存文件的时候,最好默认扩展名,为你要保存的文件扩展名,
不要选择(*.*)
oyljerry 2009-07-06
  • 打赏
  • 举报
回复
是不是桌面上的文件,图标等太多了
oyljerry 2009-07-06
  • 打赏
  • 举报
回复
是不是桌面上的文件太多了...
hendriclee 2009-07-06
  • 打赏
  • 举报
回复
估计楼主的代码哪里有问题,应该不是CFileDialog的问题
加载更多回复(4)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧