Winapi d3d9 GetFrontBufferData中没有鼠标光标

Winapi d3d9 GetFrontBufferData中没有鼠标光标,winapi,direct3d,ms-media-foundation,direct3d9,Winapi,Direct3d,Ms Media Foundation,Direct3d9,我正在写一个截屏应用程序。使用Direct3D 9 API捕获屏幕,输出媒体文件使用Windows MediaFoundation H264编解码器编写。 该应用程序必须在从7开始的所有Windows版本上运行。因此,选择了D3D9API 使用GetFrontBufferData()方法捕获图像 除了没有捕捉到鼠标光标外,一切正常 如何修复此问题?这是意料之中的(光标未呈现在调用GetFrontBufferData时引用的显示表面中)。您必须手动进行合成: 通过调用检索当前光标形状 通过调用检索

我正在写一个截屏应用程序。使用Direct3D 9 API捕获屏幕,输出媒体文件使用Windows MediaFoundation H264编解码器编写。 该应用程序必须在从7开始的所有Windows版本上运行。因此,选择了D3D9API

使用GetFrontBufferData()方法捕获图像

除了没有捕捉到鼠标光标外,一切正常

如何修复此问题?

这是意料之中的(光标未呈现在调用
GetFrontBufferData
时引用的显示表面中)。您必须手动进行合成:

  • 通过调用检索当前光标形状
  • 通过调用检索当前光标位置
  • 通过调用查找光标的热点。在步骤4中进行渲染时,热点是偏移光标所必需的
  • 通过调用来呈现光标。如果检索
    HDC
    不可行,您也可以手动将光标信息写入前端缓冲区(tedios,但也不太复杂)