#include "wx/msw/uxtheme.h"
#include "wx/msw/private.h"
#include "wx/msw/missing.h"
+#include "wx/msw/dc.h"
// the values coincide with those in tmschema.h
#define BP_GROUPBOX 4
AutoHRGN hrgnRect(::CreateRectRgn(left, top, right, bottom));
if ( !hrgnRect )
{
- wxLogLastError(_T("CreateRectRgn()"));
+ wxLogLastError(wxT("CreateRectRgn()"));
return;
}
// we did it
// 3. this is backwards compatible behaviour and some people rely on it,
// see http://groups.google.com/groups?selm=4252E932.3080801%40able.es
- wxWindow *parent = GetParent();
wxMSWDCImpl *impl = (wxMSWDCImpl*) dc.GetImpl();
- HBRUSH hbr = (HBRUSH)parent->MSWGetBgBrush(impl->GetHDC(), GetHWND());
+ HBRUSH hbr = MSWGetBgBrush(impl->GetHDC());
// if there is no special brush for painting this control, just use the
// solid background colour
wxBrush brush;
if ( !hbr )
{
- brush = wxBrush(parent->GetBackgroundColour());
+ brush = wxBrush(GetParent()->GetBackgroundColour());
hbr = GetHbrushOf(brush);
}
dc.Blit(border, 0, rc.right - border, borderTop,
&memdc, border, 0);
// bottom
- dc.Blit(border, rc.bottom - border, rc.right - border, rc.bottom,
+ dc.Blit(border, rc.bottom - border, rc.right - border, border,
&memdc, border, rc.bottom - border);
// left
dc.Blit(0, 0, border, rc.bottom,
&memdc, 0, 0);
- // right
- dc.Blit(rc.right - border, 0, rc.right, rc.bottom,
- &memdc, rc.right - border, 0);
+ // right (note that upper and bottom right corners were already part of the
+ // first two blits so we shouldn't overwrite them here to avoi flicker)
+ dc.Blit(rc.right - border, borderTop,
+ border, rc.bottom - borderTop - border,
+ &memdc, rc.right - border, borderTop);
// create the region excluding box children