2015-10-17 67 views
1

我正在使用Gdiplus::LinearGradientBrush为我的文档绘制阴影效果。它运作良好,但在文档的右侧,效果有时会绕过绘图区域的一部分。这只发生在一定范围内,因为我水平滚动。对于大部分滚动范围,一切正常。对于文档的其他方面,一切正常。当我在受影响的范围内滚动时,我可以看到渐变包装点卡住了。我可以滚动文档/背景的其余部分,但渐变包装点卡在屏幕的某个像素上。为什么GDI +线性渐变包装?

graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHalf); //Gdiplus::Graphics 
Gdiplus::Rect shadow(rect.X + rect.Width, rect.Y + cornerRadius, shadowWidth, vSideLength); 
Gdiplus::LinearGradientBrush brush(shadow, alpha1, alpha2, 180.f); 
brush.SetBlendBellShape(1); 
graphics.FillRectangle(&brush, shadow); 

什么会导致这种影响?如果需要,我可以发布图片以更好地描述问题。编号:图片here。渐变包装点以某种方式固定在我窗口中的像素上,并且包装点不会随着滚动而移动。

+2

pictures would be nice – sp2danny

回答

0

这是由于我的AMD 6xxx系列显卡的驱动程序错误引起的。 Windows VGA驱动程序没有出现此错误。截至2015年10月,目前的AMD视频驱动程序仍然存在这个问题。解决方法是使用多个16宽度渐变。