2010-01-06 55 views
2

按照this question我使用自定义模板描述自定义Win32保存文件对话框。现在我遇到了一个问题,即保存文件对话框没有显示我的电脑,最近的地方等左边的栏。我可以确认删除自定义模板会将左侧边栏返回。我在做什么保证将其删除?我如何获得这两个?自定义的Windows保存对话不再花哨 - 为什么?

更新:下面是一些代码,我有:

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,它是未设置(即FlagsEx为0)。
+0

你正在与appcompat的山战斗。将您的代码发布到文件共享服务,以便有人可以看一看。 – 2010-01-07 00:24:44

回答

1

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

集WINVER和_WIN32_WINNT的值> =在0x0500。

对于Windows 2000,OPENFILENAME结构的大小增加了,额外的空间包括FlagsEx成员;如果结构太小而不能容纳它,显然Windows将采用标记OFN_EX_NOPLACESBAR。确保lStructSize成员设置正确。

+0

这是我的问题;将lStructSize设置为sizeof(OPENFILENAMEW)可解决问题;谢谢! – fbrereto 2010-01-07 21:56:04

1

使用

#define _WIN32_WINNT 0x0501 

尝试之前

#include "windows.h" 

不小心解决同样的问题对我来说。