步驟 4:在工作區上繪製點陣圖
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 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;
pBuffer和pbmi變數會在步驟 1:建立 Windows Framework中宣告,並在步驟 3:實作 Frame-Grabbing 函式中取得其值。
相關主題