4

我正在尝试将一个图形对象的内容复制到另一个,但我唯一能找到的是基于 using 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
4

1 回答 1

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)
于 2009-02-27T23:32:28.027 回答