原来使用GDI可以很方便的设置文字的宽度
但是在GDI+中确不行,尝试的代码如下: HDC hdc = pg->GetHDC();
LOGFONT logFont;
logFont.lfHeight = 30;
logFont.lfWidth = 2;
logFont.lfEscapement = 0;
logFont.lfOrientation = 0;
logFont.lfWeight = FW_BLACK;
logFont.lfItalic = 0;
logFont.lfUnderline = 0;
logFont.lfStrikeOut = 0;
logFont.lfCharSet = GB2312_CHARSET;
logFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
logFont.lfQuality = PROOF_QUALITY;
logFont.lfPitchAndFamily=VARIABLE_PITCH | FF_ROMAN;
_tcscpy(logFont.lfFaceName, m_fFont);
Gdiplus::Font firFont(hdc,&logFont);
pg->ReleaseHDC(hdc);绘制出来的文字还是方块字。
请教牛人,如何用GDI+绘制不是方块字。
PS:最好是直接绘制,不要那种拉伸图片的方法。因为要精确的文字宽度。
但是在GDI+中确不行,尝试的代码如下: HDC hdc = pg->GetHDC();
LOGFONT logFont;
logFont.lfHeight = 30;
logFont.lfWidth = 2;
logFont.lfEscapement = 0;
logFont.lfOrientation = 0;
logFont.lfWeight = FW_BLACK;
logFont.lfItalic = 0;
logFont.lfUnderline = 0;
logFont.lfStrikeOut = 0;
logFont.lfCharSet = GB2312_CHARSET;
logFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
logFont.lfQuality = PROOF_QUALITY;
logFont.lfPitchAndFamily=VARIABLE_PITCH | FF_ROMAN;
_tcscpy(logFont.lfFaceName, m_fFont);
Gdiplus::Font firFont(hdc,&logFont);
pg->ReleaseHDC(hdc);绘制出来的文字还是方块字。
请教牛人,如何用GDI+绘制不是方块字。
PS:最好是直接绘制,不要那种拉伸图片的方法。因为要精确的文字宽度。
不过,在你的代码里面,没有看到你设置字体给dc呀!
HDC hdc = pg->GetHDC();
LOGFONT logFont;
Gdiplus::Font firFont(hdc,&logFont); logFont.lfHeight = 30;
logFont.lfWidth = 2;
logFont.lfEscapement = 0;
logFont.lfOrientation = 0;
logFont.lfWeight = FW_BLACK;
logFont.lfItalic = 0;
logFont.lfUnderline = 0;
logFont.lfStrikeOut = 0;
logFont.lfCharSet = GB2312_CHARSET;
logFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
logFont.lfQuality = PROOF_QUALITY;
logFont.lfPitchAndFamily=VARIABLE_PITCH | FF_ROMAN;
_tcscpy(logFont.lfFaceName, m_fFont);
pg->ReleaseHDC(hdc);
GDI+是在绘图的时候直接传入字体参数。
由于原来的绘图都是用GDI+,再改用GDI工作量很大。郁闷中,希望有高手能帮忙解决。