共用方式為


新增調色盤訊息處理常式

[與此頁面 DrawDib相關聯的功能是舊版功能。 MediaComposition 類別已取代它。 MediaComposition 類別已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaComposition 類別 ,而不是 DrawDib。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

下列範例說明 WM_PALETTECHANGEDWM_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