如何使用GraphicsContext绘制到MemoryDC,然后将其blit到PaintDC?

时间:2010-03-16 01:39:35

标签: python wxpython graphicscontext

我希望为这样的绘图功能添加双缓冲。

    dc = wx.PaintDC(self)
    gc = wx.GraphicsContext.Create(dc)
    #draw GraphicsPaths to the gc

我试图首先绘制到MemoryDC,然后将其blit返回到PaintDC:

    dc = wx.MemoryDC()
    dc.SelectObject(wx.NullBitmap)
    gc = wx.GraphicsContext.Create(dc)
    #draw GraphicsPaths to the gc
    dc2=wx.PaintDC(self)
    dc2.Blit(0,0,640,480,dc,0,0)

然而,这只给我一个空白屏幕。我是否误解了MemoryDC应该如何工作?

1 个答案:

答案 0 :(得分:1)

您需要创建一个位图,而不是使用wx.NullBitmap。

bitmap = wx.EmptyBitmap(w, h)
dc = wx.MemoryDC(bitmap)