2009-06-18 2 views
0

투명한 배경으로 패턴을 그릴 수 없습니다. msdn의 문서 투명성에 대해 아무것도 언급하지 않는transparent backround (GDI)를 사용하여 patternBrush를 그릴 수 있습니까?

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

: 이것은 내 조각이다. 이 모드를 사용할 수있을 것 같아요? 아니면이 버그입니까?

감사합니다.

답변

1

모드 TRANSPARENT은 브러시를 그리기 전에 배경이 채워지지 않음을 의미합니다. 그러나 브러시에는 투명 픽셀이 포함되어 있지 않으며 어쨌든 배경 픽셀을 다시 그립니다. 샘플에서 CreateBitmap의 네 번째 인수가 1로 설정되었습니다. 즉, 비트 맵은 흑백입니다.

브러시에서 투명도를 사용하려면 32 비트 비트 맵을 사용해야합니다. GDI는 일부 제한으로 투명도를 지원합니다. 완전한 투명성 지원을 위해 GDI +를 사용하십시오.

관련 문제