是否可以使用 WIN32 API 和 GDI+ (C++) 对工具提示进行样式化
Posted
技术标签:
【中文标题】是否可以使用 WIN32 API 和 GDI+ (C++) 对工具提示进行样式化【英文标题】:Is it possible to stylize a tooltip with WIN32 API and GDI+ (C++) 【发布时间】:2016-05-19 20:18:07 【问题描述】:我正在写一些代码,我想使用工具提示警告用户错误的动作。使用WIN32可以达到的最大值<commctrl.h>
TOOLINFO 结构是单行上的经典矩形工具提示。我想要达到的结果是这样的:
有没有办法使用 GDI+ 和 WIN32 API 来做到这一点?
提前致谢!
【问题讨论】:
对于它的价值,我不认为这是一个工具提示,而是一个自定义控件(或只是游戏板中的一个自定义元素)以特定方式格式化。 uxtheme API 可以为您提供系统主题外观以及字体和颜色。 【参考方案1】:要将您的工具提示文本拆分为多行,请向控件发送TTM_SETMAXTIPWIDTH
消息以为其提供最大宽度。然后它将自动换行,或者您可以使用\r\n
手动插入换行符。这里有详细描述:How to Implement Multiple Line Tooltips。
使用TTM_SETTITLE
消息为您的工具提示提供标题和图标。
【讨论】:
这是一个很好的提示,但我仍然无法自定义我的工具提示字体颜色或使用其中的图像。你认为我必须放弃给它一种风格的尝试吗? 你没有在你的问题中问这个问题,但是没有 - 工具提示控件本身不能这样做。您必须使用自定义绘图。以上是关于是否可以使用 WIN32 API 和 GDI+ (C++) 对工具提示进行样式化的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Win32/GDI 加载 PNG 图像(如果可能,不要使用 GDI+)?
Win32:是不是有使用硬件加速的替代 GDI32.dll?