+ gs_fontDefault = new wxFont(wxCreateFontFromStockObject(SYSTEM_FONT));
+ }
+
+ wxASSERT(gs_fontDefault->IsOk() &&
+ wxFontEnumerator::IsValidFacename(gs_fontDefault->GetFaceName()));
+ return *gs_fontDefault;
+#else // !__WXWINCE__
+ // wxWindow ctor calls GetFont(wxSYS_DEFAULT_GUI_FONT) so we're
+ // called fairly often -- this is why we cache this particular font
+ if ( index == wxSYS_DEFAULT_GUI_FONT )
+ {
+ if ( !gs_fontDefault )
+ {
+ // http://blogs.msdn.com/oldnewthing/archive/2005/07/07/436435.aspx
+ // explains why neither SYSTEM_FONT nor DEFAULT_GUI_FONT should be
+ // used here
+ //
+ // the message box font seems to be the one which should be used
+ // for most (simple) controls, e.g. buttons and such but other
+ // controls may prefer to use lfStatusFont or lfCaptionFont if it
+ // is more appropriate for them
+ wxNativeFontInfo info;
+ info.lf = wxMSWImpl::GetNonClientMetrics().lfMessageFont;
+ gs_fontDefault = new wxFont(info);
+ }
+