X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3b466481eac25cbef1d35aaf6ee9d94167a07b9..26ac40202f84fd07c9f24885b4d36b34b9468f4d:/src/msw/dcclient.cpp diff --git a/src/msw/dcclient.cpp b/src/msw/dcclient.cpp index a7becdbf5c..50fd1ad86e 100644 --- a/src/msw/dcclient.cpp +++ b/src/msw/dcclient.cpp @@ -29,61 +29,77 @@ #include #if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC) IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC) +IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) +IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) #endif -wxClientDC::wxClientDC(void) +/* + * wxWindowDC + */ + +wxWindowDC::wxWindowDC(void) { m_canvas = NULL; } -wxClientDC::wxClientDC(wxWindow *the_canvas) +wxWindowDC::wxWindowDC(wxWindow *the_canvas) { m_canvas = the_canvas; -// BeginDrawing(); - m_hDC = (WXHDC) ::GetDC((HWND) the_canvas->GetHWND()); +// m_hDC = (WXHDC) ::GetDCEx((HWND) the_canvas->GetHWND(), NULL, DCX_WINDOW); + m_hDC = (WXHDC) ::GetWindowDC((HWND) the_canvas->GetHWND() ); + m_hDCCount ++; + + SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); } -wxClientDC::~wxClientDC(void) +wxWindowDC::~wxWindowDC(void) { -// EndDrawing(); - - if (m_canvas && (HDC) m_hDC) + if (m_canvas && m_hDC) { SelectOldObjects(m_hDC); ::ReleaseDC((HWND) m_canvas->GetHWND(), (HDC) m_hDC); m_hDC = 0; } + m_hDCCount --; } -wxWindowDC::wxWindowDC(void) +/* + * wxClientDC + */ + +wxClientDC::wxClientDC(void) { m_canvas = NULL; } -wxWindowDC::wxWindowDC(wxWindow *the_canvas) +wxClientDC::wxClientDC(wxWindow *the_canvas) { m_canvas = the_canvas; -// m_hDC = (WXHDC) ::GetDCEx((HWND) the_canvas->GetHWND(), NULL, DCX_WINDOW); - m_hDC = (WXHDC) ::GetWindowDC((HWND) the_canvas->GetHWND() ); - m_hDCCount ++; +// BeginDrawing(); + m_hDC = (WXHDC) ::GetDC((HWND) the_canvas->GetHWND()); + + SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); } -wxWindowDC::~wxWindowDC(void) +wxClientDC::~wxClientDC(void) { - if (m_canvas && m_hDC) +// EndDrawing(); + + if (m_canvas && (HDC) m_hDC) { SelectOldObjects(m_hDC); ::ReleaseDC((HWND) m_canvas->GetHWND(), (HDC) m_hDC); m_hDC = 0; } - m_hDCCount --; } +/* + * wxPaintDC + */ + wxPaintDC::wxPaintDC(void) { m_canvas = NULL; @@ -116,6 +132,8 @@ wxPaintDC::wxPaintDC(wxWindow *canvas) ms_PaintCount = 1; m_hDCCount++; } + + SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); } wxPaintDC::~wxPaintDC() @@ -124,8 +142,8 @@ wxPaintDC::~wxPaintDC() if ( !--ms_PaintCount ) { ::EndPaint((HWND)m_canvas->GetHWND(), &g_paintStruct); m_hDCCount--; - m_hDC = NULL; - ms_PaintHDC = NULL; + m_hDC = (WXHDC) NULL; + ms_PaintHDC = (WXHDC) NULL; } else { }//: ms_PaintHDC still in use }