C++ Direct2D兼容位图的屏幕捕获

C++ Direct2D兼容位图的屏幕捕获,c++,bitmap,rendering,screenshot,direct2d,C++,Bitmap,Rendering,Screenshot,Direct2d,我需要捕获给定HWND句柄的windows屏幕,并将捕获存储在ID2D1Bitmap对象中,以便通过渲染目标绘制此位图 如何获得此结果?Direct2D不提供此类功能 一种可能的方法是,首先通过GDI 1捕获屏幕,然后从返回的位图句柄2创建ID2D1Bitmap 正在获取HBITMAP-请检查以下答案:。您需要零件,直到HBITMAP hbDesktop=CreateCompatibleBitmap hdc、width、height;hbDesktop变量将包含屏幕捕获位图的句柄 从HBITMA

我需要捕获给定HWND句柄的windows屏幕,并将捕获存储在ID2D1Bitmap对象中,以便通过渲染目标绘制此位图


如何获得此结果?

Direct2D不提供此类功能

一种可能的方法是,首先通过GDI 1捕获屏幕,然后从返回的位图句柄2创建ID2D1Bitmap

正在获取HBITMAP-请检查以下答案:。您需要零件,直到HBITMAP hbDesktop=CreateCompatibleBitmap hdc、width、height;hbDesktop变量将包含屏幕捕获位图的句柄

从HBITMAP创建ID2D1Bitmap-检查以下答案:。它将图标复制到ID2D1Bitmap,但工作流是相同的。除:

hIcon:=SendMessageHandle,WM_GETICON,ICON_BIG,0; .... wicFactory.CreateBitmapFromHICONhIcon,wicBitmap

您必须更改为:

wicFactory.CreateBitmapFromHBITMAPhbDesktop,wicBitmap

还请注意,