一直用ID3DXFONT显示字体,但是突然发现有时候在某些机上不定时的有些字显示不出来,不如说“我爱你”就会显示成“我 你”,“222”就会显示成“2 2”,调试的时候发现在内存中这些字符串都是完整的,就是显示在屏幕上的时候少那么几个字~~~~而且少的几个字有很大的概率都是那么几个字`~~~~这个问题困扰了好久,实在没有办法了,还请大家指教 PS:我的输出函数是用的ID3DXFONT里面的DRAWTEXT成员函数。 下面是代码片段: LPD3DXFONT pFont; D3DXFONT_DESC pDesc; pDesc.Height = 14; pDesc.Width = 7; pDesc.Weight = 20; pDesc.Italic = false; pDesc.CharSet = DEFAULT_CHARSET; strcpy(pDesc.FaceName,"宋体"); D3DXCreateFontIndirect(g_pd3dDevice,&pDesc,&pFont); RECT Rt={0,0,100,100}; CString Context="我爱你";(此处换成char context[]="我爱你";依然会有字显示不出来) int Length = Context.GetLength();(此处换成int Length = -1;依然会有字显示不出来) pFont->DrawTextA( NULL,Context, Length, &Rt, DT_CENTER|DT_VCENTER,D3DCOLOR_ARGB(255,255,255,255) ); |