在 Windows 中排除矩形被绘制
Exclude rectangle from being painted in Windows
我想在 WM_PAINT
期间排除在 window 中绘制的矩形。 SelectClipRgn(hdc, hRegion);
可以相反,但是我想绘制除区域以外的所有内容。
提前致谢,
贾斯珀·德·凯泽
你只能间接地做到这一点。 (阿法克)
- 创建窗体(或控件)大小的位图
- 创建一个绘制到该位图的图形对象 (Pixelformat 32bppArgb)' Graphics.FromImage(...)
- 清除透明色位图
- 把一切都画进那幅画里
- 用透明色绘制/填充应排除的矩形
- 将位图绘制到您的窗体(或控件)
注意为图形对象使用正确的 ComposingMode。要绘制到位图,请使用 SourceCopy(否则该区域将不会完全透明)和 SourceOver 以将位图绘制到您的窗体(或控件)。
我想在 WM_PAINT
期间排除在 window 中绘制的矩形。 SelectClipRgn(hdc, hRegion);
可以相反,但是我想绘制除区域以外的所有内容。
提前致谢, 贾斯珀·德·凯泽
你只能间接地做到这一点。 (阿法克)
- 创建窗体(或控件)大小的位图
- 创建一个绘制到该位图的图形对象 (Pixelformat 32bppArgb)' Graphics.FromImage(...)
- 清除透明色位图
- 把一切都画进那幅画里
- 用透明色绘制/填充应排除的矩形
- 将位图绘制到您的窗体(或控件)
注意为图形对象使用正确的 ComposingMode。要绘制到位图,请使用 SourceCopy(否则该区域将不会完全透明)和 SourceOver 以将位图绘制到您的窗体(或控件)。