image as wxMDIParentFrame background?

Robin,

Yes, I set the background too, and that may have to do. If I set the
MDIClientWindow as the target of an event, I still need the client window's
DC at some point, don't I? And I see no way to get it?

Thanks,

Bruce

···

-----Original Message-----
From: Robin Dunn [mailto:robin@alldunn.com]
Sent: Tuesday, January 14, 2003 3:45 PM
To: wxPython-users@lists.wxwindows.org
Subject: Re: [wxPython-users] image as wxMDIParentFrame background?

brucedickey wrote:

Found the following in the documentation as applies to C++. Doesn't work

in

wxPython; that is the overridden wxMDIParentFrame::OnCreateClient() is

never

called (as the text says). Robin, is there a way to do this two-stage
creation in Python or other way to get control over the creation of the
wxMDIClientWindow? Or alternately, a way to get the DC from the client
window (GetDC(), wxPaintDC(), wxClientDC() are not implemented)?

Right, that virtual is not reflected into Python, but you can still do
stuff with the window. For example, I just did this in PyShell:

>>> from wxPython.wx import *
>>>
>>> f = wxMDIParentFrame(None, -1, "Test")
>>> f.Show()
1
>>> f.GetClientWindow().SetBackgroundColour("BLUE")
>>> f.GetClientWindow().Refresh()
>>>

You can also set event handlers using the client window as the target, etc.

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwindows.org
For additional commands, e-mail: wxPython-users-help@lists.wxwindows.org

brucedickey wrote:

Robin,

Yes, I set the background too, and that may have to do. If I set the
MDIClientWindow as the target of an event, I still need the client window's
DC at some point, don't I? And I see no way to get it?

Assuming that the handler is a method of your mdi parent:

     def DoSomething(self, evt):
         dc = wxClientDC(self.GetClientWindow())
  dc.DrawBitmap(...) # or whatever

even better, in an EVT_ERASE_BACKGROUND handler, you may get the DC in the event object:

     def DoSomething(self, evt):
         dc = evt.GetDC()
         if dc is None:
             dc = wxClientDC(self.GetClientWindow())
  dc.DrawBitmap(...) # or whatever

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!