Добавление обработчиков сообщений палитры

[Функция, связанная с этой страницей DrawDib, является устаревшей функцией. Он был заменен классом MediaComposition. Класс MediaComposition оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать класс MediaComposition вместо DrawDib. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

В следующем примере показаны простые обработчики сообщений для WM_PALETTECHANGED и WM_QUERYNEWPALETTE сообщений. В примере используется функция DrawDibRealize для обработки WM_QUERYNEWPALETTE сообщения.

Приложение должно отвечать на сообщение WM_QUERYNEWPALETTE , обравив окно назначения недействительным, чтобы функция DrawDibDraw перерисовала изображение. Для реализации палитры следует ответить на сообщение WM_PALETTECHANGED с помощью функции DrawDibRealize .

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