我将 DirectComposition 与 DirectManipulation 结合使用来渲染事物。我在 DirectCompositionVisuals 上存在一些垂直链接的文本。我想提取所选内容的像素数据,以便我可以用它来做一些事情。我正在尝试执行以下操作,但这会导致表面被清除
HRESULT hr = DCSurface->BeginDraw(&rect, IID_PPV_ARGS(&dxSurface), &point);
HDC hdcSurface = nullptr;
hr = dxSurface->GetDC(FALSE, &hdcSurface);
就我而言,首先,您应该创建一个可更新的表面对象,该对象可以通过 IDCompositionDevice::CreateSurface 方法与一个或多个视觉效果关联以进行合成。然后使用
IDCompositionSurface::BeginDraw method
用像素数据初始化表面。
是的,BeginDraw 为您提供了新的绘图纹理。来自MSDN:
检索到的表面矩形不包含位图之前的内容。