gpt4 book ai didi

windows - 如何显示 'Send to' 和 'Open With' 上下文菜单?

转载 作者:可可西里 更新时间:2023-11-01 09:22:26 27 4
gpt4 key购买 nike

前段时间我问过how to pop up the Windows context (right-click) menu for a certain file in Delphi .但是,即使一切正常(几乎)正常,“发送到...”和“打开方式...”子菜单也没有任何项目,即使当我在资源管理器中右键单击相同的文件名时,它们也是如此工作正常。 (例如,“发送至...”有“桌面(创建截图)”、“电子邮件收件人”等)。

我怎样才能让这些菜单出现?

最佳答案

几年前,雷蒙德·陈 (Raymond Chen) 在关于托管上下文菜单的多部分系列文章中写到了这个确切的问题。他文章的关键主题是,当您阅读文档时,您必须记住您的程序正在扮演 shell 的角色,而文档通常是从实现代码的角度编写的上下文菜单接口(interface),而不是调用它们的代码。

早在part 2 , Chen 观察到发送到和打开方式菜单显示为空。 Part 5解决您对这些子菜单的直接关注。答案是您需要处理菜单消息。有一个与您的菜单相关联的窗口句柄 - 您提供给 TrackPopupMenuEx 的句柄(HND in Issam's answer 到您的问题)。该窗口将在菜单处于事件状态时接收消息,并且需要将它们转发给实现菜单命令的对象。该窗口有一个窗口过程,这就是您需要调用菜单界面的HandleMenuMsgHandleMenuMsg2 方法的地方。文章有例子。

文章系列的其他部分涵盖了您在说您的菜单“几乎”有效时肯定提到的其他内容。 Part 3讨论属性对话框出现的位置。 Part 7关于调用默认动词。我建议你阅读整个系列。不要害怕一切都在 C++ 中;几乎都是接口(interface)方法和API函数,所以应该可以毫不费力地翻译成Delphi。

关于windows - 如何显示 'Send to' 和 'Open With' 上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2040659/

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