팔레트 메시지 처리기 추가

[이 페이지 와 연결된 기능인 DrawDib는 레거시 기능입니다. MediaComposition 클래스로 대체되었습니다. MediaComposition 클래스는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DrawDib 대신 MediaComposition 클래스를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

다음 예제에서는 WM_PALETTECHANGED WM_QUERYNEWPALETTE 메시지에 대한 간단한 메시지 처리기를 보여 줍니다. 이 예제에서는 DrawDibRealize 함수를 사용하여 WM_QUERYNEWPALETTE 메시지를 처리합니다.

DrawDibDraw 함수가 이미지를 다시 그릴 수 있도록 대상 창을 무효화하여 애플리케이션이 WM_QUERYNEWPALETTE 메시지에 응답해야 합니다. DrawDibRealize 함수를 사용하여 팔레트를 실현하여 WM_PALETTECHANGED 메시지에 응답해야 합니다.

case WM_PALETTECHANGED: 
    if ((HWND)wParam == hwnd) 
        break; 
case WM_QUERYNEWPALETTE: 
    hdc = GetDC(hwnd); 
    f = DrawDibRealize(hdd, hdc, FALSE) > 0; 
    ReleaseDC(hwnd, hdc); 
    if (f) 
        InvalidateRect(hwnd, NULL, TRUE); 
    break; 

DrawDib 사용