Windows XP在绘制图标文字时,会有一个漂亮的阴影,这有助于在各种背景下阅读文字。字体颜色为白色,阴影为黑色(如果桌面背景为白色),或者根本没有阴影(如果桌面背景为黑色)。
所以有两个子任务。
影子是怎么画出来的?它不是简单的文字x,y偏移,影子在我看来更像是一个模糊的东西。
如何让阴影表现为在白色背景上变得更明显,而在深色背景上变得不明显?
我需要一个GDI(不是GDI+)的解决方案。
灵感来自于 Chris Becke在这个帖子中的回答
如果你需要快速和不那么脏的解决方案,你可能也想做以下的事情。
在黑色位图上画一个文本,然后将其alpha混合到主hdc上,但是:将目标矩形移动-1 ... 2 x和-1 ... 3 y(即在一个循环中进行多次混合)。为了达到阴影渐变的效果,相应地修改外部混合的SourceConstantAlpha(/www.delphipraxis.net66678-drawshadowtext-delphi-commctrl-h-comctl32-dll-3.html)。
这里是英文版本。