ウィンドウの画像をキャプチャする通常の方法は、次を呼び出すことです。
HDC SharedWndDC = GetWindowDC(SharedWnd);
BitBlt(BitmapDC, 0, 0, width, height, SharedWndDC, 0, 0, SRCCOPY /* |CAPTUREBLT */);
ReleaseDC(SharedWnd, SharedWndDC);
DWM を実行しているシステムでは、問題のウィンドウが他のウィンドウと重なっていたり、部分的に画面から外れていたりしても、問題のウィンドウだけを適切に取得します。
ただし、一部のウィンドウ (おそらく WPF を使用するウィンドウ) では正しく機能せず、ガラス領域でおかしな動作をします。基本的に、GDI キャプチャは GDI 以外のものでは機能しません。
Direct3D の「バック バッファー」または「フロント バッファー」を取得することが本当に必要なことは理解していますが、私が見た多くの例は、画面全体またはデスクトップをキャプチャするためのものです。Direct3D を知らないので、既存の windowの適切なオブジェクトを取得する方法の例や簡単なステートメントを見つけることができず、そこからバッファーを取得できます。
誰か親切な魂が、少なくとも欠けているピースを見せてくれるでしょうか?
—ジョン