CFileDialog的问题

WhyArrow 2005-06-27 05:34:26
程序初始话的时候用 ::CoInitializeEx(NULL,COINIT_MULTITHREADED);初始化COM库,
在打开文件对话框中(CFileDialog)结果出现一下问题:
1、可以显示初始话的文件类型的文件。
2、在选择不同的文件类型时,对话框中无法显示所要的文件。
例如,初始化文件类型是*.xls,对话框中显示了所有的*.xls的文件,现在选择*.*文件类型,
结果对话框中没有任何文件显示。
这是为什么?我又用CoInitialize(NULL)初始化,结果就没有上面的问题。
CFileDialog类,和COM库有关系吗?什么样的关系呢?

问题解决,愿给所有分。
...全文
176 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsvine 2005-06-29
  • 打赏
  • 举报
回复
gz
vcmute 2005-06-28
  • 打赏
  • 举报
回复
用了CoInitializeEx(NULL,COINIT_MULTITHREADED),并加了_WIN32_DCOM
http://www.vckbase.com/document/viewdoc/?id=940中的例子选择*.*没问题
WhyArrow 2005-06-28
  • 打赏
  • 举报
回复
1、
我作的是一个带有接口的应用程序,初始化COM库,是为接口所用的,而且必须有。

CFileDialog Filedlg(TRUE,_T("csv"),
_T("usr.csv"),OFN_HIDEREADONLY,
_T("逗号分隔符文件(*.csv)|*.csv|所有文件(*.*)|*.*||"),this);

应该没有错误吧,
2、对于http://www.vckbase.com/document/viewdoc/?id=940中的例子,你把::CoInitializeEx(NULL,COINIT_MULTITHREADED);加到APP的初始化函数中,再看看有什么结果?选择类型看看。相同的问题就出现了。
WhyArrow 2005-06-28
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=940中
顺序:1、在CMyApp的InitInstance中添加CoInitializeEx(NULL,COINIT_MULTITHREADED),添加_WIN32_DCOM
2、在ExitInstance中CoUninitialize();
3、编译
4、打开程序,打开文件,文件对话框中显示了,*.*类型的文件,然后再选择另一个数据类型
看看,出现了什么?文件对话框中空了。
蒋晟 2005-06-28
  • 打赏
  • 举报
回复
http://support.microsoft.com/kb/287087
stupid_dog 2005-06-27
  • 打赏
  • 举报
回复
可以参考以下文章
http://www.vckbase.com/document/viewdoc/?id=940
jerry 2005-06-27
  • 打赏
  • 举报
回复
跟COM没关系啊, 是不是你的初始化过滤器参数不对?

你的过滤器串应该象这样的:

"xls files(*.xls)|*.xls|All Files(*.*)|*.*||"
vcmute 2005-06-27
  • 打赏
  • 举报
回复
理论上CFileDialog无须CoInitialize,有最简工程么?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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