다음을 통해 공유


이미지 목록에서 이미지 그리기

이미지를 그리려면 CImageList::D raw 멤버 함수를 사용합니다. 디바이스 컨텍스트 개체에 대한 포인터, 그릴 이미지의 인덱스, 이미지를 그릴 디바이스 컨텍스트의 위치 및 그리기 스타일을 나타내는 플래그 집합을 지정합니다.

ILD_TRANSPARENT 스타일을 Draw 지정하는 경우 2단계 프로세스를 사용하여 마스킹된 이미지를 그립니다. 먼저 이미지 비트 및 마스크 비트에 대해 논리 AND 연산을 수행합니다. 그런 다음, 첫 번째 작업 결과와 대상 디바이스 컨텍스트의 백그라운드 비트에 대해 논리 XOR 작업을 수행합니다. 이 프로세스는 결과 이미지에 투명한 영역을 만듭니다. 즉, 마스크에 있는 각각의 흰색 비트로 인해 결과 이미지에 해당하는 비트가 투명해집니다.

단색 배경에 마스킹된 이미지를 그리기 전에 SetBkColor 멤버 함수를 사용하여 이미지 목록의 배경색을 대상과 동일한 색으로 설정해야 합니다. 색을 설정하면 이미지에서 투명한 영역을 만들 필요가 없으며 대상 디바이스 컨텍스트에 이미지를 복사하기만 하면 Draw 성능이 크게 향상됩니다. 이미지를 그리려면 호출Draw때 ILD_NORMAL 스타일을 지정합니다.

언제든지 마스킹된 이미지 목록(CImageList)의 배경색을 설정하여 모든 단색 배경에 올바르게 그릴 수 있습니다. 배경색을 CLR_NONE 설정하면 기본적으로 이미지가 투명하게 그려집니다. 이미지 목록의 배경색을 검색하려면 GetBkColor 멤버 함수를 사용합니다.

ILD_BLEND25ILD_BLEND50 스타일은 이미지를 시스템 강조 색으로 디더링합니다. 이러한 스타일은 마스킹된 이미지를 이용해 사용자가 선택할 수 있는 개체를 나타내는 경우 유용합니다. 예를 들어 ILD_BLEND50 스타일을 이용해 사용자가 이미지를 선택하면 이를 그릴 수 있습니다.

마스크되지 않은 이미지는 래스터 작업을 사용하여 대상 디바이스 컨텍스트에 SRCCOPY 복사됩니다. 이미지 색은 디바이스 컨텍스트의 배경색에 관계없이 동일하게 표시됩니다. 지정한 Draw 그리기 스타일은 마스크되지 않은 이미지의 모양에도 영향을 주지 않습니다.

그리기 멤버 함수 외에도 다른 함수인 DrawIndirect는 이미지를 렌더링하는 기능을 확장합니다. DrawIndirect는 IMAGELISTDRAWPARAMS 구조체를 매개 변수로 사용합니다. 이 구조체를 사용하여 ROP(래스터 작업) 코드 사용을 포함하여 현재 이미지의 렌더링을 사용자 지정할 수 있습니다. ROP 코드 에 대한 자세한 내용은 Windows SDK에서 래스터 작업 코드비트맵을 브러시 로 참조하세요.

참고 항목

CImageList 사용
컨트롤