return msStyle;
}
+WXHBRUSH wxStaticText::DoMSWControlColor(WXHDC pDC, wxColour colBg)
+{
+ // If this control has a non-standard fg colour but still has the standard
+ // bg then we need to also give it a non-standard bg otherwise the fg
+ // setting has no effect.
+ WXHBRUSH hbr = wxControl::DoMSWControlColor(pDC, colBg);
+ if (!hbr && m_hasFgCol)
+ {
+ hbr = MSWGetBgBrushForChild(pDC, this);
+ if (!hbr)
+ {
+ HDC hdc = (HDC)pDC;
+ wxColour bg = GetBackgroundColour();
+ ::SetBkColor(hdc, wxColourToRGB(bg));
+ wxBrush *brush = wxTheBrushList->FindOrCreateBrush(bg, wxSOLID);
+ hbr = (WXHBRUSH)brush->GetResourceHandle();
+ }
+ }
+ return hbr;
+}
+
wxSize wxStaticText::DoGetBestSize() const
{
wxClientDC dc(wx_const_cast(wxStaticText *, this));
- dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+ wxFont font(GetFont());
+ if (!font.Ok())
+ font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+
+ dc.SetFont(font);
wxCoord widthTextMax, heightTextTotal;
dc.GetMultiLineTextExtent(GetLabel(), &widthTextMax, &heightTextTotal);