添加调色板消息处理程序
[与此页面关联的功能 DrawDib 是一项旧功能。 它已被 MediaComposition 类取代。 MediaComposition 类已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaComposition 类 而不是 DrawDib。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
下面的示例演示 WM_PALETTECHANGED 和 WM_QUERYNEWPALETTE 消息的简单消息处理程序。 该示例使用 DrawDibRealize 函数处理 WM_QUERYNEWPALETTE 消息。
应用程序应通过使目标窗口失效来响应 WM_QUERYNEWPALETTE 消息,让 DrawDibDraw 函数重绘图像。 应使用 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;
相关主题