static IntPtr InitFont(string fontName, float emHeight, FontStyle style) { //see: MSDN, LOGFONT structure //https://msdn.microsoft.com/en-us/library/windows/desktop/dd145037(v=vs.85).aspx MyWin32.LOGFONT logFont = new MyWin32.LOGFONT(); MyWin32.SetFontName(ref logFont, fontName); logFont.lfHeight = -(int)PixelFarm.Drawing.RequestFont.ConvEmSizeInPointsToPixels(emHeight); //minus ** logFont.lfCharSet = 1; //default logFont.lfQuality = 0; //default MyWin32.LOGFONT_FontWeight weight = ((style & FontStyle.Bold) == FontStyle.Bold) ? MyWin32.LOGFONT_FontWeight.FW_BOLD : MyWin32.LOGFONT_FontWeight.FW_REGULAR; logFont.lfWeight = (int)weight; // logFont.lfItalic = (byte)(((style & FontStyle.Italic) == FontStyle.Italic) ? 1 : 0); return(MyWin32.CreateFontIndirect(ref logFont)); }