투명한 백라운드 (GDI)가있는 PatternBrush를 어떻게 그릴 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1013245

  •  06-07-2019
  •  | 
  •  

문제

투명한 배경으로 패턴을 그릴 수 없습니다. 이것은 내 스 니펫입니다.

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 투명성에 대해 언급하지 않습니다. 이 모드를 사용할 수 있을까요? 아니면 버그입니까?

감사!

도움이 되었습니까?

해결책

방법 TRANSPARENT 브러시가 그려지기 전에 배경이 채워지지 않음을 의미합니다. 그러나 브러시에는 투명한 픽셀이 포함되어 있지 않으며 어쨌든 배경 픽셀을 다시 작성합니다. 네 번째 논쟁 CreateBitmap 샘플에서 1로 설정되었습니다. 그것은 비트 맵이 단색임을 의미합니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top