2009-02-27 2 views
4

グラフィックスオブジェクトの内容を別のグラフィックオブジェクトにコピーしようとしていますが、可能であれば使用を避けるため、GDI32.DLLを使用しています。グラフィックスオブジェクトを別のグラフィックスオブジェクトにコピーする方法

これは管理コードを使用してどのように/可能であれがわかりますか?答えがC#またはVB.Netであれば気にしません。ここで

は、私が現在持っているものです。

Private Sub CopyGraphics() 
    Dim srcPic As Graphics = pnl.CreateGraphics 

    Dim srcBmp As New Bitmap(pnl.Width, pnl.Height, srcPic) 
    Dim srcMem As Graphics = Graphics.FromImage(srcBmp) 

    Dim HDC1 As IntPtr = srcPic.GetHdc 
    Dim HDC2 As IntPtr = srcMem.GetHdc 

    BitBlt(HDC2, 0, 0, pnl.Width, pnl.Height, HDC1, 0, 0, 13369376) 

    pnlDraw.BackgroundImage = srcBmp 

    'Clean Up code omitted... 
End Sub 

答えて

5

は、厳密に言えばGraphicsオブジェクトには何も入っていないので、それは、どこでも任意の方法を使用してGraphicsオブジェクトの内容をコピーすることはできません。

DrawToBitmapメソッドを使用してビットマップにコントロールを描画しないのはなぜですか?

Dim srcBmp As New Bitmap(pnl.Width, pnl.Height) 
Dim clip As New Rectangle(New Point(0, 0), pnl.Size) 
pnl.DrawToBitmap(srcBmp, clip) 
+0

私はDrawToBitmapメソッドについては知りませんでした。 – Pondidum

関連する問題