Добавление обработчиков сообщений палитры
[Функция, связанная с этой страницей 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;
Связанные темы