HBITMAPからGDI+ビットマップにBitBltを実行しようとしています。私はこれを試しましたが、何も起こりません:
Bitmap Buffer = New Bitmap(608, 392)
Graphics BufferGraphics = Graphics.FromImage(Buffer);
IntPtr hBufferDC = BufferGraphics.GetHdc();
...
BitBlt(hBufferDC, x, y, width, height, hInputDC, 0, 0, SRCCOPY);
編集:どうやら、hDCを取得して、後でBitBltで使用すると、hDCが機能しないようです。hDCがまだ有効であることを確認する必要がありました。これが解決策です:
Bitmap Buffer = New Bitmap(608, 392)
Graphics BufferGraphics = Graphics.FromImage(Buffer);
...
IntPtr hBufferDC = BufferGraphics.GetHdc();
BitBlt(hBufferDC, x, y, width, height, hInputDC, 0, 0, SRCCOPY);
BufferGraphics.ReleaseHdc(hBufferDC);
この変更が必要な理由を誰かが知っていますか?最初の例のように以前に取得したhDCを使用しても機能しないのはなぜですか?