环境:日文win7 32位操作系统,vs2005英文版
源码:
LOGFONT lf;
pDC->GetCurrentFont()->GetLogFont(&lf);
CFont font;
//lf.lfCharSet=GB2312_CHARSET;
lf.lfCharSet=SHIFTJIS_CHARSET;
lf.lfHeight=-40;
lf.lfWidth=0;
strcpy(lf.lfFaceName, "system");
//strcpy(lf.lfFaceName, "MS Pゴシック");
font.CreateFontIndirect( &lf);
CFont* pOldFont=pDC->SelectObject( &font);
pDC->TextOut(10, 10, _T("本光度測定解釈の画像は表示できません。"));
pDC->SelectObject(pOldFont);
问题:无论怎么改变lfHeight都没反应,或者反映剧烈。很久以前用mfc改变字体大小也没这么复杂呀。。
而且当用GB2312_CHARSET之后(百度而来的代码都是中文的。。。),发现可以改变字体大小了,于是怀疑SHIFTJIS_CHARSET问题,百度半天无果,于是试用google
结果http://www.cppblog.com/wifecooky/archive/2010/06/20/118302.html说要Charset属性设置成SHIFTJIS_CHARSET,Name设置成MS Pゴシック
于是,我用了下strcpy(lf.lfFaceName, "MS Pゴシック");
然后就好了
原因:字符集和字体要匹配。技术还得靠google,baidu完全罩不住了
参考:http://www.cppblog.com/wifecooky/archive/2010/06/20/118302.html