共用方式為


步驟 4:在工作區上繪製點陣圖

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

[此 API 不受支援,未來可能會變更或無法使用。]

本主題是 擷取海報框架的步驟 4。

最後一個步驟是使用 SetDIBitsToDevice 函式,將點陣圖繪製到應用程式視窗的工作區。 此範例只會繪製工作區左上角的點陣圖,而不需考慮視窗大小:

case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc = BeginPaint(hwnd, &ps);
        if (pbmi)
        {
            int result = SetDIBitsToDevice(hdc, 0, 0, 
                pbmi->biWidth,
                pbmi->biHeight,
                0, 0, 0,
                pbmi->biHeight,
                pBuffer,
                reinterpret_cast<BITMAPINFO*>(pbmi),
                DIB_RGB_COLORS);
        }
        EndPaint(hwnd, &ps);
    }
    break;

pBufferpbmi變數會在步驟 1:建立 Windows Framework中宣告,並在步驟 3:實作 Frame-Grabbing 函式中取得其值。

抓取海報框架