我需要禁用Windows任务栏上下文菜单(当鼠标悬停在任务栏上的窗口上时):
我希望它要么是不可见或所有项目变灰或点击任何项目(最重要的-最小化和恢复)被中和
重要提示-解决方案不能依赖于“正常”WPF布线,例如OnStateChanged
处理和使用WindowState
或SystemCommands
将窗口状态恢复到所需状态。欢迎使用低级/非托管/pinvoke/win32代码。
- 因为我已经大量使用这些,这适用于所有用例,除了用户使用此Windows任务栏命令时。我想不出一个更简单、更稳定的解决方案来完全排除这种情况。
1条答案
按热度按时间vlju58qv1#
该菜单被称为“窗口系统菜单”。它可以通过
GetSystemMenu
检索。它将返回一个 Menu 对象的句柄。获取菜单句柄后,可以将其传递给
ModifyMenu
函数以修改其中的菜单项。它需要修改哪些菜单项。您可以使用uPosition
参数来给予它。你可以给予一个相对位置,它是从零开始的索引或标识符。系统菜单包含具有预定义标识符的菜单项。它们是SC_MINIMIZE
、SC_MAXIMIZE
、SC_CLOSE
等。您可以使用这些标识符来引用要修改的菜单项。