【问题标题】:Remove tooltip from the close, minimize and maximize/restore buttons in a form's title bar从表单标题栏中的关闭、最小化和最大化/恢复按钮中删除工具提示
【发布时间】:2017-05-05 03:51:36
【问题描述】:

我需要从表单标题栏中的控制按钮(关闭、最小化、最大化/恢复按钮)中删除工具提示。

有可能吗?如果可能,我该怎么做?

请分享您的宝贵建议。

提前致谢。

【问题讨论】:

  • 你为什么要这样做?
  • 我通过从 System.Window.Forms.Form 派生来创建自定义表单。为此,我想为工具提示提供本地化支持。我已经为按钮定义了工具提示。但默认工具提示也显示在其中。所以我需要从表单中删除默认工具提示
  • "...为此,我想为工具提示提供本地化支持..." - 我原以为操作系统会这样做?
  • 几年前我正在研究需要相同功能的动态表单。我做了什么,我删除了控制框,只需禁用表单属性上的控制框并在右上角添加自己的按钮。所以我可以根据需要自定义它们。

标签: c# forms winforms


【解决方案1】:
EntryPoint="SystemParametersInfoW")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern  bool SystemParametersInfoW(uint uiAction, uint uiParam, 
System.IntPtr pvParam, uint fWinIni) ;

您可能必须去哪里执行此操作,但控制框上的工具提示,如标题字体、颜色等,是系统范围的设置。

另外,除非您有真正令人信服的理由这样做,否则我不会打扰。

如果你弄明白了,请贴出来。它至少会满足好奇心。

【讨论】:

    【解决方案2】:

    WM_NCHITTEST 中返回除HTCLOSE, HTMINIMIZE 之外的其他HITTEST 代码等(例如,所有类型的字幕按钮都为+0x80)。在WM_NCMOUSEMOVEWM_NCLBUTTONDOWN 等中,在DefWindowProc 之前返回正确的 HITTEST 代码。 不要忘记添加您自己的工具提示。

    它应该可以工作,因为 Windows 不显示未知对象的工具提示。

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 2013-10-10
      • 2020-11-26
      • 2015-05-02
      • 1970-01-01
      • 2011-02-09
      • 2011-02-27
      相关资源
      最近更新 更多