当前位置: 首页 > 编程语言 > C#

覆盖标题栏按钮的工具提示文本(关闭,最大化,最小化,帮助)分享

时间:2023-04-11 01:36:05 C#

C#学习教程:覆盖标题栏按钮的tooltip文本(关闭、最大化、最小化、帮助)为窗体主标题栏上的按钮显示的工具提示文本。简而言之,我们将Windows窗体帮助按钮用于其他目的。这很好用。问题是当鼠标悬停在该按钮上时,会出现“帮助”工具提示,这对应用程序没有任何意义。理想情况下,会有一些方法可以为我的应用程序更改该工具提示的文本;然而,在这一点上,我只是想找到一种方法来完全禁用工具提示。我知道您可以通过修改regedit中的“UserPreferencesMask”键来禁用整个操作系统的工具提示,但我真的想要一种方法让它只影响我的应用程序。同样,理想情况下托管代码中可能有一些方法,但我不反对链接到WindowsAPI等。感谢您提供解决此问题的任何建议!作为解决方法,您可能不使用帮助按钮,而是:添加自定义按钮。虽然这个示例不是那么完美,但它向您展示了这个想法。这是一个非常有趣的问题。我的第一个想法是使用GetSysMenu来更改系统菜单。我尝试删除并重命名“关闭”项,但关闭按钮的工具提示没有改变。然后我尝试捕获tooltip窗口的HWND,但是没有成功。如果我使表单(我在Delphi中工作)显示一个名为“测试”的工具提示,我可以通过FindWindow(nil,'Test')获取它的HWND,然后我可以发送SendMessageWM_CLOSE。在下面的示例代码中,我使用了一个计时器来不断搜索工具提示。这对性能不利,所以人们想知道工具提示出现的确切时间。在这种情况下,当工具提示与客户端控件相关联时,您可以简单地使用OnHint事件。程序TForm1.Timer1Timer(Sender:TObject);变量h:HWND;开始h:=FindWindow(nil,'Test');如果h0那么SendMessage(h,WM_CLOSE,0,0);结尾;但是,当tooltip与标题栏按钮关联时有两个问题。以上就是C#学习教程的全部内容:覆盖标题栏按钮的tooltip文本(关闭、最大化、最小化、帮助)。如果对你有用,你需要进一步了解C#学习教程,希望你多多关注——我无法使用FindWindow(nil,'Close');获取关闭按钮的工具提示句柄;如果我们能得到句柄,我们需要一个聪明的地方来编码它——我们不希望它在计时器中。OnHint(在Delphi中——所有本机Win32应用程序中都存在类似事件)可能仅适用于客户端控件。WM_NC*消息可用于推断何时显示标题栏工具提示。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: