代码之家  ›  专栏  ›  技术社区  ›  Pondidum

如何将一个图形对象复制到另一个图形对象中

  •  4
  • Pondidum  · 技术社区  · 17 年前

    我试图将一个图形对象的内容复制到另一个图形对象,但我唯一能找到的是基于使用 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
    
    1 回复  |  直到 14 年前
        1
  •  5
  •   Guffa    17 年前

    严格来说,不可能使用任何方法将图形对象的内容复制到任何地方,因为图形对象不包含任何内容。

    Dim srcBmp As New Bitmap(pnl.Width, pnl.Height)
    Dim clip As New Rectangle(New Point(0, 0), pnl.Size)
    pnl.DrawToBitmap(srcBmp, clip)
    
    推荐文章