This method provides a simple way to set a background bitmap without defining an EVT_ERASE_BACKGROUND handler and, more importantly, one that works correctly in wxMSW for a window with children as it paints the background of transparent children too. Add a test of this method to the erase sample. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/msw/panel.h
 | |
| // Purpose:     wxMSW-specific wxPanel class.
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2011-03-18
 | |
| // RCS-ID:      $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
 | |
| // Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_MSW_PANEL_H_
 | |
| #define _WX_MSW_PANEL_H_
 | |
| 
 | |
| class WXDLLIMPEXP_FWD_CORE wxBrush;
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // wxPanel
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_CORE wxPanel : public wxPanelBase
 | |
| {
 | |
| public:
 | |
|     wxPanel() { Init(); }
 | |
| 
 | |
|     wxPanel(wxWindow *parent,
 | |
|             wxWindowID winid = wxID_ANY,
 | |
|             const wxPoint& pos = wxDefaultPosition,
 | |
|             const wxSize& size = wxDefaultSize,
 | |
|             long style = wxTAB_TRAVERSAL | wxNO_BORDER,
 | |
|             const wxString& name = wxPanelNameStr)
 | |
|     {
 | |
|         Init();
 | |
| 
 | |
|         Create(parent, winid, pos, size, style, name);
 | |
|     }
 | |
| 
 | |
|     // This is overridden for MSW to return true for all panels that are child
 | |
|     // of a window with themed background (such as wxNotebook) which should
 | |
|     // show through the child panels.
 | |
|     virtual bool HasTransparentBackground();
 | |
| 
 | |
| 
 | |
| #ifdef WXWIN_COMPATIBILITY_2_8
 | |
|     wxDEPRECATED_CONSTRUCTOR(
 | |
|     wxPanel(wxWindow *parent,
 | |
|             int x, int y, int width, int height,
 | |
|             long style = wxTAB_TRAVERSAL | wxNO_BORDER,
 | |
|             const wxString& name = wxPanelNameStr)
 | |
|     {
 | |
|         Create(parent, wxID_ANY, wxPoint(x, y), wxSize(width, height), style, name);
 | |
|     }
 | |
|     )
 | |
| #endif // WXWIN_COMPATIBILITY_2_8
 | |
| 
 | |
| protected:
 | |
|     void Init()
 | |
|     {
 | |
|         m_backgroundBrush = NULL;
 | |
|     }
 | |
| 
 | |
|     virtual void DoSetBackgroundBitmap(const wxBitmap& bmp);
 | |
|     virtual WXHBRUSH MSWGetCustomBgBrush();
 | |
| 
 | |
| private:
 | |
|     wxBrush *m_backgroundBrush;
 | |
| 
 | |
|     wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPanel);
 | |
| };
 | |
| 
 | |
| #endif // _WX_MSW_PANEL_H_
 |