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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top