Pergunta

Eu não posso desenhar um padrão com um fundo transparente. Este é o meu trecho:

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);

O doc sobre MSDN doesn' t mencionou nada sobre a transparência. Eu acho que este modo pode ser usado? Ou este é um bug?

Obrigado!

Foi útil?

Solução

Modo meios TRANSPARENT esse fundo não serão preenchidos antes de seu pincel é desenhado. Mas sua escova não contém quaisquer pixels transparentes nele e ele redesenha pixels fundo de qualquer maneira. Quarto argumento em CreateBitmap foi definido como 1 na sua amostra. Isso significa bitmap é monocromático.

Você precisa usar bitmap de 32 bits para usar transparência nas escovas. GDI suporta transparência com alguns limites. Use GDI + para suporte total transparência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top