Why is wx.TRANSPARENT_BRUSH not wx.BRUSH(wx.Colour(0,0,0,0))?

The title says it. It would appear to this newbie that an alpha of 0 would make a brush or other shape completely transparent, but that seems not to be the case. Here’s a demonstration that should show a solid bitmap. When the button is pushed, it should draw a centered circle (not disc) on the bitmap and cycle the color of the bitmap.

As written, the code works - except that the circle isn’t centered, which is odd. However, if I change the DC’s Brush from wx.TRANSPARENT_BRUSH to wx.Brush(wx.Colour(0,0,0,0)), the behavior becomes unusual. The disc inside the circle changes to odd colors, eventually settling on white and staying there. It almost seems that the pixels’ colors are being incremented in each color channel with each successive button push?

import wx

class MyFrame(wx.Frame):

    def __init__(self, parent=None, size=(200,300)):
        wx.Frame.__init__(self, parent=parent, title="DCTest", size=size)
        self.panel = wx.Panel(self)

        self.colors = [(200,0,0,255), (0,200,0,255), (0,0,200,255)]
        self.colorindex = 0
        
        self.bitmap = self.newBitmap(self.colorindex)
        self.bitmapCtrl = wx.StaticBitmap(self.panel, bitmap=self.bitmap)
        
        self.dc = wx.ClientDC(self.bitmapCtrl)

        self.button = wx.Button(self.panel, label = "Push Me", size=(200,100))
        self.Bind(wx.EVT_BUTTON, self.OnPush, self.button)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.panel.SetSizer(self.sizer)
        self.sizer.Add(self.bitmapCtrl)
        self.sizer.Add(self.button)
        
        self.sizer.Layout()
        

    def newBitmap(self, colorindex):
        R, G, B, A = self.colors[colorindex]

        return wx.Bitmap.FromRGBA(200,200,R,G,B,A)

    def OnPush(self, event):
        self.colorindex += 1
        if self.colorindex >= len(self.colors):
            self.colorindex = 0

        self.bitmap = self.newBitmap(self.colorindex)

        localdc = wx.BufferedDC(self.dc, self.bitmap)
        R,G,B,A = self.colors[len(self.colors)-self.colorindex-1]
        localdc.SetPen(wx.Pen(wx.Colour(R,G,B,A), width=2))
        localdc.SetBrush(wx.TRANSPARENT_BRUSH)
        

        localdc.DrawCircle(100,100,25)
        

app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()

Update: when the brush is wx.Brush(wx.Colour(0,0,0,0)), adding the line self.dc.Clear() within the OnPush() method causes the interior of the circle to become white immediately. Not sure what that tells me exactly …