팔레트

DrawDib 함수를 사용하려면 애플리케이션이 색상표 지향 메시지인 WM_QUERYNEWPALETTE 및 WM_PALETTECHANGED 응답해야 합니다. 애플리케이션이 색상표를 인식하지 못하는 경우 이러한 각 메시지에 대한 처리기를 추가해야 합니다. WM_QUERYNEWPALETTEWM_PALETTECHANGED 메시지 처리에 대한 자세한 내용은 팔레트 메시지 처리기 추가를 참조하세요.

DrawDibRealize 함수를 사용하여 DC에 대한 현재 DrawDib 팔레트를 실현할 수 있습니다. WM_QUERYNEWPALETTE 또는 WM_PALETTECHANGED 메시지에 대한 응답으로 또는 DrawDibDraw 함수를 사용하여 이미지 시퀀스를 표시할 준비를 할 때 팔레트를 인식해야 합니다.

DrawDibSetPalette 함수를 사용하여 다른 팔레트에 매핑된 이미지를 그릴 수 있습니다. 이 함수는 DrawDib DC가 이미지 품질에 영향을 줄 수 있는 지정된 팔레트를 사용하도록 강제합니다. 예를 들어 색상표를 인식하는 애플리케이션이 팔레트를 실현하고 DrawDib가 자체 팔레트를 실현하지 못하도록 해야 할 수 있습니다. 애플리케이션은 DrawDibSetPalette를 사용하여 DrawDib 에 사용할 팔레트를 알릴 수 있습니다.

DrawDibGetPalette 함수를 사용하여 현재 전경 팔레트의 핸들을 가져올 수 있습니다. 애플리케이션이 현재 전경 팔레트를 사용하는 경우 색상표를 단독으로 사용하지 않으며 다른 애플리케이션이 색상표 핸들을 무효화할 수 있습니다. 애플리케이션 사용을 완료할 때 색상표를 해제해서는 안 됩니다. 팔레트를 해제하면 다른 애플리케이션의 색상표 핸들이 무효화됩니다.

DrawDibChangePalette 함수를 사용하여 색상표에 대한 새 색 값을 받도록 DrawDib를 준비할 수 있습니다. DrawDibChangePalette 다음 코드에서 색상표 색 테이블에 대한 새 값을 할당합니다. DrawDibChangePalette를 호출할 때 DrawDib DC에서 DDF_ANIMATE 플래그가 설정되지 않은 경우 DrawDibRealize를 사용하여 색상표를 구현하여 색상표 변경 내용을 적용할 수 있습니다. 그런 다음 DrawDibDraw 를 사용하여 이미지를 다시 그릴 수 있습니다. DDF_ANIMATE 플래그가 DrawDib DC에 설정된 경우 DrawDibDraw 또는 DrawDibRealize를 사용하여 표시된 비트맵의 색상표와 색에 애니메이션 효과를 적용할 수 있습니다. DrawDibEndDrawDibBegin 함수를 사용하여 DDF_ANIMATE 플래그를 업데이트할 수 있습니다.

참고

DC에서 DrawDib 팔레트를 선택하는 동안 해제하면 DC에서 색상표를 사용할 때 GDI(그래픽 디바이스 인터페이스) 오류가 발생할 수 있습니다. 대신 애플리케이션에서 DrawDibSetPalette를 사용하여 DrawDib DC를 변경하여 기본 색상표 또는 다른 팔레트를 사용해야 합니다.

 

DrawDibEnd, DrawDibCloseDrawDibBegin 함수는 DrawDib 팔레트를 해제할 수 있습니다. 그러나 이러한 함수는 DC에서 색상표를 선택하지 않은 경우에만 사용해야 합니다. DrawDibDraw 함수는 동일한 DrawDib DC를 사용하는 경우 팔레트를 해제할 수도 있지만 다른 그리기 매개 변수(lpbi, dxDst, dyDst, dxSrc 또는 dySrc) 또는 다른 형식을 지정합니다.

이미지 렌더링