【问题标题】:Remove a window's title context menu, but leaving everything else intact删除窗口的标题上下文菜单,但保留其他所有内容
【发布时间】:2019-03-05 10:15:48
【问题描述】:

我发现删除窗口标题上下文菜单的唯一方法是:

SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);

WS_SYSMENU 类似于 0x80000。

但这也隐藏了窗口的关闭按钮,这是我不想要的。

有一个我还没有尝试过的解决方法。我可能会覆盖右键单击窗口,也可以覆盖 ALT+Space(或 ALT+Up)组合键。我正在使用 WPF。

更具体地说,我想要一个看起来像这样的窗口:

  1. 标题栏中没有图标
  2. 没有上下文菜单
  3. 没有最大化按钮(不仅仅是禁用)
  4. 有一个最小化按钮

我可以用这个https://stackoverflow.com/a/4553510/5539917实现的第一个

第三点和第四点不能同时做。所以我选择隐藏最小化和最大化按钮,并使用关闭按钮和托盘图标解决方案。 (点击关闭按钮不会关闭应用,而是将其最小化为托盘图标。)

剩下的就是第二点了。有一个简单的解决方案吗?我不想创建一个完全自定义的窗口,我也不特别喜欢我提到的解决方法。

【问题讨论】:

  • 您可以绘制自定义关闭按钮。这将比整个自定义窗口更容易。
  • ShowInTaskBar 您可以将其设置为 false。除此之外,您必须使用所需的行为绘制自己的窗口。
  • @XAMlMAX ShowInTaskBar 已经是假的
  • @montonero 这是个好主意,我会研究一下
  • 我不知道,因为您没有提供任何 XAML。

标签: wpf windows window


【解决方案1】:

我认为您不想这样做,因为它可以禁止某些 Windows 自定义程序让用户将窗口固定在顶部。请不要禁用标题栏上下文。

【讨论】:

    【解决方案2】:

    答案是:这是不可能的。

    【讨论】:

      猜你喜欢
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2014-01-19
      • 2021-12-31
      相关资源
      最近更新 更多