2009-06-18 80 views
0

我無法繪製具有透明背景的圖案。這是我的代碼片段:如何繪製帶有透明背景(GDI)的圖案花紋?

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的文檔沒有提及任何透明度。我猜這種模式可以使用?或者這是一個錯誤?

謝謝!

回答

1

模式TRANSPARENT表示在繪製畫筆之前背景不會被填充。但是,您的畫筆不包含任何透明像素,並且無論如何都會重繪背景像素。 CreateBitmap中的第四個參數在您的示例中設置爲1。這意味着位圖是單色的。

您需要使用32位位圖來在畫筆中使用透明度。 GDI支持一些限制的透明度。使用GDI +提供完整的透明度支持。