0

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

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

我尝试先绘制到 MemoryDC,然后将其传送回 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 应该如何工作?

4

1 回答 1

1

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

bitmap = wx.EmptyBitmap(w, h)
dc = wx.MemoryDC(bitmap)
于 2010-03-16T02:28:49.020 回答