天天看點

SHIFTJIS_CHARSET字型字元集下無變化

环境:日文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

繼續閱讀