我就用你的程序。
vc6 win7 上也没问题啊. 是不是 你的机器没 "微软雅黑", 而被别的代替了?
楼上说的也有道理。我确实在 GDI+ 绘制文字时出现过类似的情况,但具体的原因我忘了。如果不是我之前说的那个原因,那也可以试试在 GDI+ 绘制文字的时候最好设置一下反锯齿等这些参数,而且最好在一个内存 DC 绘制好,再用 AlphaBlend 拷贝到目标 DC,别在目标 DC 上直接绘制。
应该是字体的原因,这个字体可能是antialias的,因此边界部分会有混合色(即字体颜色白+背景颜色黑=深灰),你layered窗口设置的透明色是黑色,因此文字的灰色的边框并不能透明,放在白色背景上当然很显眼。 要解决只有用UpdateLayeredWindow(), 用你的文字生成一幅bmp32图然后将文字和背景的颜色复制到alpha通道上,这样深灰就变成半透明,不会那么显眼了。
[quote=引用 6 楼 schlafenhamster 的回复:] 为什么要 : dc.FillRect(&rc, &CBrush(RGB(0, 0, 0))); ????
为什么要 : dc.FillRect(&rc, &CBrush(RGB(0, 0, 0))); ????
要看看代码啊
15,979
社区成员
115,896
社区内容
加载中
试试用AI创作助手写篇文章吧