【发布时间】:2013-06-12 14:45:49
【问题描述】:
DrawThemeTextEx 是绘制 Windows Vista 和 7 的 Aero 文本的 API,即带有发光光晕的文本。
要更改使用DrawThemeTextEx 绘制时使用的文本颜色,设置DTTOPTS 结构的crText 字段并在dwFlags 字段中指定DTT_TEXTCOLOR,以指示crText 字段包含有效值。但是文字后面的模糊发光效果总是画白色。设置shadow or border colours 和适当的标志对发光颜色没有影响。 DTTOPTS 结构中的发光颜色没有明显的设置。
您可以在此处看到自定义文本颜色(红色),但它仍然在文本后面呈现白色模糊光晕。比如说,我想用黑色发光代替,因为对于浅色文本,它会使文本更易于阅读。
你如何改变这个白色光晕/辉光的颜色?例如,是否存在具有影响的Dwm* API 或未记录的标志?
【问题讨论】:
-
不是答案,但您可以创建自定义窗口框架,然后在其中绘制。在这种情况下,您将能够根据需要显示您的文本。详情见MSDN
-
据我了解,Yahoo Messenger 已经实现了相同的方法:screenshot
-
谢谢@AshtonHearts,但我不明白这是如何解决问题的。创建自定义窗口框架如何更改使用 DrawThemeTextEx 绘制的文本的背景发光颜色?据我所知,它总是白色的。您的屏幕截图实际上根本没有显示任何带有发光背景的文本 - 也许您指的是他们在标题栏上绘制的徽标?
-
正如我所说,这不是解决方案。屏幕截图是为了演示自定义字体的使用。如果您的目标是简单地绘制特定样式的文本,那么您可以创建具有发光效果的自定义字体并在自定义窗口框架内绘制文本。
-
谢谢,但我知道如何使用特定字体和发光效果绘制文本。有关 API 详细信息的链接,请参阅我的问题。我的问题是改变发光颜色,就像你可以改变文本颜色一样。
标签: winapi aero aero-glass