我创建的RTF控件非常类似于here所描述的控件。 工作得很好。有时我让控件将其内容直接绘制到设备上下文中,有时我会使用我自己绘制到设备上下文的屏幕外位图,具体取决于具体情况。
现在我需要控件具有透明背景,所以我已经覆盖了基本clss初始化的CreateParams
方法,并添加了createParams.ExStyle |= 0x20;
,它归结为一种扩展窗口样式,WS_EX_TRANSPARENT。
此时,透明度就像魅力一样。但与之前相比,设置此选项会使绘图到屏幕外位图无法使用,因为字体质量会受到影响。请注意,只有在绘制到位图时,字体质量才会变差,尽管创建屏幕外位图使用相同的例程,只需使用不同的设备上下文,但绘制到控件的设备上下文仍然有效。
正如您所看到的,左侧的字体非常精细,而在右侧,字体变得混乱,过于粗体,似乎在坐标不匹配的情况下多次绘制。< / p>
注释掉为透明度添加的行会使位图恢复正常,但也会在所有绘制的白色背景中产生,这使我的透明度变得松散。
有关如何成功组合两种所需效果的任何想法吗?