【发布时间】:2020-08-29 14:52:48
【问题描述】:
我有一个 640x480 大小的窗口。我想在该窗口的左上角放置一个 100x100 大小的视频。所以我这样做:
RECT r;
r.left = 0;
r.top = 0;
r.right = 100;
r.bottom = 100;
m_pVideoDisplay->SetVideoPosition(NULL, &r);
这会正确地将视频放在左上角并将其缩放到 100x100 像素,但由于某种原因,Media Foundation 视频渲染器也会填充我的窗口中不被现在黑色的视频。我怎样才能阻止它这样做?我已经明确告诉IMFVideoDisplayControl 只绘制到我的窗口左上角的 100x100 像素。但它仍然用黑色填充了我窗口的剩余空间!我可以做些什么来让 Media Foundation 不触摸我的窗口的其余部分?
我的WM_PAINT 看起来像这样:
GetClientRect(hwnd, &rc);
BeginPaint(hwnd, &ps);
FillRect(ps.hdc, &rc, GetStockObject(WHITE_BRUSH));
m_pVideoDisplay->RepaintVideo();
EndPaint(hwnd, &ps);
我希望所有未被视频占用的窗口空间都是白色的,而是黑色的。
我也尝试过这样做,但也没有用:
m_pVideoDisplay->SetRenderingPrefs(MFVideoRenderPrefs_DoNotRenderBorder);
有什么想法吗?谢谢!
【问题讨论】:
-
问题中的代码无法帮助我重现您的问题。请提供可重现的代码示例。
标签: windows winapi ms-media-foundation