int GDrawPointsToPixels(GWindow gw,int points) { if ( gw==NULL ) { if ( screen_display==NULL ) return( PointToPixel(points,100)); gw = screen_display->groot; } return( PointToPixel(points,gw->display->res)); }
HFONT GraphicsMisc::CreateFont(LPCTSTR szFaceName, int nPoint, DWORD dwFlags) { HFONT hDefFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); ASSERT (hDefFont); LOGFONT lf; ::GetObject(hDefFont, sizeof(lf), &lf); // set the charset if (dwFlags & GMFS_SYMBOL) { lf.lfCharSet = SYMBOL_CHARSET; } else if (!lf.lfCharSet) { lf.lfCharSet = DEFAULT_CHARSET; } if (szFaceName && *szFaceName) { lstrcpy(lf.lfFaceName, szFaceName); // reset character-set lf.lfCharSet = DEFAULT_CHARSET; } if (nPoint > 0) { lf.lfHeight = -PointToPixel(nPoint); } else if (dwFlags & GMFS_SYMBOL) { lf.lfHeight = MulDiv(lf.lfHeight, 12, 10); } lf.lfWidth = 0; lf.lfUnderline = (BYTE)(dwFlags & GMFS_UNDERLINED); lf.lfItalic = (BYTE)(dwFlags & GMFS_ITALIC); lf.lfStrikeOut = (BYTE)(dwFlags & GMFS_STRIKETHRU); lf.lfWeight = (dwFlags & GMFS_BOLD) ? FW_BOLD : FW_NORMAL; HFONT hFont = CreateFontIndirect(&lf); // verify the font creation if (!SameFont(hFont, szFaceName, nPoint)) { VerifyDeleteObject(hFont); hFont = NULL; } return hFont; }