¿Cómo puedo dibujar un pincel de patrón con fondo transparente (GDI)?
Pregunta
No puedo dibujar un patrón con un fondo transparente. Este es mi fragmento:
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);
El documento sobre msdn doesn ' No mencione nada sobre la transparencia. ¿Supongo que este modo podría usarse? ¿O es esto un error?
¡Gracias!
Solución
Modo TRANSPARENTE
significa que el fondo no se rellenará antes de dibujar el pincel. Pero su pincel no contiene píxeles transparentes y vuelve a dibujar los píxeles de fondo de todos modos. El cuarto argumento en CreateBitmap
se estableció en 1 en su muestra. Eso significa que el mapa de bits es monocromo.
Debe usar un mapa de bits de 32 bits para usar la transparencia en los pinceles. GDI apoya la transparencia con algunos límites. Use GDI + para una compatibilidad total con la transparencia.