- wxString fontFace = logFont->lfFaceName;
-
- // font size
- HDC dc = ::GetDC(NULL);
-
- // remember that 1pt = 1/72inch
- int height = abs(logFont->lfHeight);
- int fontPoints = (72*height)/GetDeviceCaps(dc, LOGPIXELSY);
-
- ::ReleaseDC(NULL, dc);
-
- wxFontEncoding fontEncoding;
- switch ( logFont->lfCharSet )
- {
- default:
- wxFAIL_MSG(wxT("unsupported charset"));
- // fall through
-
- case ANSI_CHARSET:
- fontEncoding = wxFONTENCODING_CP1252;
- break;
-
-#ifdef __WIN32__
- case EASTEUROPE_CHARSET:
- fontEncoding = wxFONTENCODING_CP1250;
- break;
-
- case BALTIC_CHARSET:
- fontEncoding = wxFONTENCODING_CP1257;
- break;
-
- case RUSSIAN_CHARSET:
- fontEncoding = wxFONTENCODING_CP1251;
- break;
-
- case ARABIC_CHARSET:
- fontEncoding = wxFONTENCODING_CP1256;
- break;
-
- case GREEK_CHARSET:
- fontEncoding = wxFONTENCODING_CP1253;
- break;
-
- case HEBREW_CHARSET:
- fontEncoding = wxFONTENCODING_CP1255;
- break;
-
- case TURKISH_CHARSET:
- fontEncoding = wxFONTENCODING_CP1254;
- break;
-#endif
-
- case OEM_CHARSET:
- fontEncoding = wxFONTENCODING_CP437;
- break;
- }
-
- return wxFont(fontPoints, fontFamily, fontStyle,
- fontWeight, fontUnderline, fontFace,
- fontEncoding);