<强>问题:

有谁知道如何改变一个已经运行的打开文件对话框的当前目录?

<强>详细信息:

我有一个自定义打开文件对话框(使用自定义模板添加额外的控件)也已全部确认,现有的检查和创建测试关闭(通过OPENFILENAME标志)。

至于那些事关禁用对话框的内置行为,这将导致它来改变当前显示的文件夹,如果用户键入一个文件夹名称为“文件名称”组合框,并按下ENTER键。

我想补充一点,行为回来。当此通过钩子程序发生了,我可以检测到。我已经隐藏确定按钮,关闭它的加速器,并把控制我自己的“选择”按钮。这意味着,唯一的一次,我收到了CDN_FILEOK消息是当用户点击后输入在文本框中输入。

我不能,但是,弄清楚如何以编程方式告诉对话框来改变当前目录。

我在想,我也许可以通过发送某种消息在窗口中SHELLDLL_DefView控制来做到这一点,但我一直没能找到它的任何文件。

有帮助吗?

解决方案 2

我能够围绕找出一个工作。

事实证明,在验证被关断,因为在一个“\”结尾的目录名键入仍会改变文件夹被显示,但在不以“\”结束目录名打字不会

使用间谍++我能够看到进入IS击打时WM_COMMAND消息将被发送到与wParam参数,其喜序位字是BN_CLICKED且其低位字是ID_OK公共对话控制。

如果我子类中常见的对话框我可以拦截消息,更改在文件名组合框中的文本,通过对原子类过程转发该消息,然后更改文本背面之后。

这是黑客的一点点,但它使我得到我从对话框想要的行为。

其他提示

我不知道直接回答,但如果你有SPY ++或任何其他消息侦听程序,尝试检查由去邮件,当你改变一个正常的OPENFILENAME对话框的目录。你可能会发现答案了(虽然它坚硬的出路)。

其他人可能知道答案了手,虽然;让我们希望他们做的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top