ScrolledWindow and creating an overlay

Sorry if this is a repost, I've just joined & didn't see my previous post.

Hi all, this is my first post & I am quite new to wxPython.
What I want to try to do is have a ScrolledWindow with a bitmap attached to it, so I can scroll around the image. At the same time I want to overlay some lines, these lines are fixed with respect to the viewing panel - in other words these lines will need to move around the scrolled window to conter the scroll.
Perhaps an example, in a side scrolling game the background will scroll but the player will remain fixed.

Anyhow, I can load & display & scroll the image, but the lines don't draw properly overtop of it, they get blurred & shreded.
Here is the OnPaint event, hopefully you should see what I am trying to do.

def OnPaint(self, event):
      dc = wx.PaintDC( self.panel_1 )
     if self.image is not None:
       mem = wx.MemoryDC()
       mem.SelectObject(self.bmp)
       mem.SetPen(wx.Pen(wx.RED, 14))
       x,y = self.panel_1.CalcUnscrolledPosition(0,0)
       #mem.DrawLine(x,y,x+50,y+50) # this line should draw a screen fixed line, but doesn't
       mem.DrawLine(0,0,50,50) # this line draws an image relative line
       self.panel_1.PrepareDC(dc)
       #dc.Clear()
       #dc.DrawBitmap(self.image.Scale(x,y).ConvertToBitmap(),0,0,1)
       #dc.DrawBitmap(self.bmp,0,0,1)
       a,b = mem.GetSize()
       dc.Blit(0,0,a,b,mem,0,0)

Any thoughts, or tutorials I can read?

Cheers
Brad