我使用GetOpenFileName
并将OPENFILENAME
结构的lpstrInitialDir
成员设置为我想要的目录作为初始目录。然而,在Win7上,我的应用程序似乎记得用户上次打开的目录,它忽略了lpstrInitialDir
设置并转到最后一个目录。On Win7 GetOpenFileName函数忽略lpstrInitialDir参数
lpstrInitialDir
LPCTSTR
初始目录。 选择初始目录的算法在不同平台上有所不同。的Windows 7:
1.如果lpstrInitialDir具有相同的值作为传递的第一次 应用程序中使用的打开或另存为 对话框,由用户选择的路径最近 作为 初始目录。
2.否则,如果lpstrFile包含路径,则该路径是最初的 目录。
3.否则,如果lpstrInitialDir不为NULL,则指定初始的 目录。
有谁知道如何阻止这种情况发生?
我希望我指定的目录是最初的目录,而不管用户上次打开的文件是什么,即我希望上面的条件3适用。我做了显而易见的事情,并通过注册表进行了搜索,但找不到与问题相关的任何内容。
谢谢,这是我需要的建议。如果我将lpstrFile设置为完整路径,那么OpenFile对话框会在lpstrFile中指定的目录下打开,并且它可以与通配符一起使用,如C:\ path \\ *。xml。 – 2010-11-07 14:41:27
这不适合我,我得到“'错误12290'。未能打开。 – Dan 2012-06-02 20:36:24