[C++] Create Gdiplus Font From LOGFONT
Gdiplus::Font* CreateGdiplusFont(const WCHAR* szFontName, int nFontSize, BOOL bBold, BOOL bItalic, BOOL bUnderline, BOOL bStrikeOut)
{
// HFONT hfont;
HDC hdc = GetDC(NULL);
int nFontHeight = -MulDiv(nFontSize, GetDeviceCaps(hdc, LOGPIXELSY), 72);
LOGFONTW lFont;
lFont.lfCharSet = DEFAULT_CHARSET;
lFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
lFont.lfEscapement = 0;
wcscpy_s(lFont.lfFaceName, szFontName);
lFont.lfHeight = nFontHeight;
lFont.lfItalic = bItalic;
lFont.lfOrientation = 0;
lFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
lFont.lfPitchAndFamily = FF_DONTCARE;
lFont.lfQuality = DEFAULT_QUALITY;
lFont.lfStrikeOut = bStrikeOut;
lFont.lfUnderline = bUnderline;
if (bBold)
lFont.lfWeight = FW_BOLD;
else
lFont.lfWeight = FW_NORMAL;
lFont.lfWidth = 0;
Gdiplus::Font* font = new Gdiplus::Font(hdc, &lFont);
ReleaseDC(NULL, hdc);
return font;
}