gpt4 book ai didi

c - 当用户在 GetOpenFileName() 中选择取消时,是否有类似于 CDN_FILEOK 的 CDN_FILECANCEL 之类的内容?

转载 作者:行者123 更新时间:2023-11-30 17:29:48 27 4
gpt4 key购买 nike

出于跨平台奇偶校验的原因,我的 GetOpenFileName() 未指定所有者,并且我自己明确禁用了所有顶级窗口。问题是重新启用。 In order to re-enable these windows correctly ,我需要在对话框关闭之前重新启用它们。

对于用户选择文件的情况,这不是问题:我只需在 Hook 过程中检查 CDN_FILEOK 即可。没有问题,没有焦点困惑。

除了取消对话框之外,我该如何做同样的事情?

我已经在 Hook 过程中尝试了WM_DESTROY,但是它在对话框被隐藏之后运行(太晚了)。我已经尝试过 WM_COMMAND,但这似乎并不能涵盖所有情况。我不确定我还有什么其他选择。

我现在需要以 Windows XP 及更高版本为目标;这也意味着没有通用项目对话框。谢谢!

替代方案:如果有一种方法可以执行基于回调的GetOpenFileName(),将控制权返回给我的消息循环,例如使用 beginSheetModalForWindow: 的 Mac OS X,我可以指定父窗口并避免这种 hack。

最佳答案

取消对话框时没有 CDN 通知。如果用户按下取消按钮,您可以尝试拦截 BN_CLICKED它发送到对话框的通知,甚至是按钮本身的子类。但如果用户通过其他方式取消对话框(单击红色 X、按 ESC 等),您可能必须捕获 WM_CLOSE 消息。

关于c - 当用户在 GetOpenFileName() 中选择取消时,是否有类似于 CDN_FILEOK 的 CDN_FILECANCEL 之类的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com