2

根据这个问题,我正在使用自定义模板描述自定义 Win32 保存文件对话框。现在我遇到了一个问题,即“保存文件”对话框没有显示左侧栏与我的计算机、最近的地方等。我可以确认删除自定义模板会带回左侧边栏。我在做什么需要删除它?我如何获得两者?

更新:这是我拥有的一些代码:

info.hInstance = MyGetModuleInstanceRoutine();
info.lpfnHook = MyOFNHookProcRoutine;
info.lpTemplateName = MAKEINTRESOURCEW(myCustomResourceID);
info.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_NOREADONLYRETURN |
              OFN_ENABLESIZING | OFN_ENABLEHOOK | OFN_EXPLORER | OFN_ENABLETEMPLATE;

::GetSaveFileNameW(&info);

笔记:

  • MyOFNHookProcRoutine总是返回 0。
  • 我知道扩展标志OFN_EX_NOPLACESBAR并且它没有设置(即为FlagsEx0)。
4

2 回答 2

1

尝试使用

#define _WIN32_WINNT 0x0501 

#include "windows.h"

这意外地为我解决了同样的问题。

于 2010-01-07T21:16:56.940 回答
1

添加到RED SOFT ADAIR-StefanWoe的答案:

将 WINVER 和 _WIN32_WINNT 设置为 >= 0x0500 的值。

OPENFILENAME 结构的大小在 Windows 2000 中增加了,额外的空间包括了 FlagsEx 成员;OFN_EX_NOPLACESBAR显然,如果结构太小而无法包含它,Windows 会假定该标志。确保lStructSize成员也设置正确。

于 2010-01-07T21:36:04.570 回答