我无法绘制具有透明背景的图案。这是我的片段:
bitmap.CreateBitmap(8, 8, 1, 1, &bits)
brush.CreatePatternBrush(&bitmap)
hbrush = pCgrCurrentDC->SelectObject(&brush);
// set text color
TextCol = pCgrCurrentDC->SetTextColor(CgrColourPalRGB);
int oldBkgrdMode = pCgrCurrentDC->SetBkMode(TRANSPARENT);
//draw polygon
pCgrCurrentDC->Polygon(CgrBuffer, n);
msdn上的文档没有提及任何有关透明度的内容。我猜这个模式可以用吗?或者这是一个错误吗?
谢谢!
答案 0 :(得分:1)
模式TRANSPARENT
表示在绘制画笔之前不会填充背景。但是你的画笔中不包含任何透明像素,无论如何它都会重绘背景像素。您的样本中CreateBitmap
中的第四个参数设置为1。这意味着位图是单色的。
您需要使用32位位图来使用画笔中的透明度。 GDI支持透明度有一些限制。使用GDI +获得完全透明支持。