계층화 된 창에서 "적절한"알파를 수행하려면 UpdateLayeredWindow
을 호출하여 창 관리자에게 PARGB 비트 맵을 제공해야합니다.
- 가
PixelFormat32bppPARGB
픽셀 형식의 GDI + Bitmap
객체를 생성 : 내가 알고있는 그이를 달성 할 수있는 가장 깨끗한 방법은 다음과 같다.
- 이
Bitmap
개체에 그리는 Graphics
개체를 만듭니다.
- GDI +를 사용하여 모든 개체를이 개체로 만듭니다.
- 2.
- 를 호출
Bitmap
개체의 GetHBITMAP
방법은 윈도우 HBITMAP
얻을 단계에서 만든 Graphics
오브젝트를 파괴한다.
Bitmap
개체를 삭제합니다.
CreateCompatibleDC
을 사용하여 메모리 DC를 만들고 5 단계에서 HBITMAP
을 선택하십시오.
- 메모리 DC를 원본으로 사용하여 UpdateLayeredWindow를 호출합니다.
- 이전 비트 맵을 선택하고 메모리 DC를 삭제하십시오. 배경 투명, 텍스트와 버튼 불투명 :
- 이 방법은 당신이 그려지는 모든의 알파 채널을 제어 할 수 있도록해야
HBITMAP
5 단계
에서 만든 파괴한다.또한
, 텍스트를 출력 할 것 때문에, 나는 당신이 기본 안티 앨리어싱 설정 (SPI_GETFONTSMOOTHING
)를 얻을 수 SystemParametersInfo
를 호출하는 것이 좋습니다 다음 그래픽에 SetTextRenderingHint
은 같은 유형으로 안티 앨리어싱 유형을 설정하는 객체 보다 사용자 친화적 인 디자인을 위해 사용자가 구성했습니다.
죄송합니다. stackoverflow에 PM 기능이 없습니다. 따라서 여기에 의견을 제시해야합니다. 최종 솔루션 코드를 공유 하시겠습니까? Koro가 지적한 것과 유사합니까? 감사 – Steve