各位,问题是这样的,我在屏幕上输出了一串字符串(UNICODE),当为中文或者英文时,没有问题。
我输出了一串韩文,韩文中包含着空格,结果我在定位光标时出现了问题。因为在调试中我发现这些空格的宽度只有3像素(而在中英文中均有8像素)。
关于获取字符串宽度,我使用了GetTextExtentPoint32(我也尝试过使用DrawText并设置标识参数为DT_CALCRECT),取到的字符串宽度并不正确。
请问各位,有无好的方法?

解决方案 »

  1.   

    用等宽字符LOGFONT   m_lf;  
       
                        ZeroMemory(&m_lf,   sizeof(m_lf));  
      m_lf.lfHeight =   -13;  
      m_lf.lfWeight   =   400;  
      m_lf.lfCharSet   =   134;  
      m_lf.lfOutPrecision   =   1;  
      m_lf.lfClipPrecision   =   2;  
      m_lf.lfQuality   =   1;  
      m_lf.lfPitchAndFamily   =   49;  
      lstrcpy(m_lf.lfFaceName,   "Fixedsys");  
       
      m_hFont   =   CreateFontIndirect(&m_lf);
      

  2.   

    我想请教一下,为何在同一个文本编辑界面,用TextOutW或者DrawTextW函数绘制出的跟随在中文和韩文后的空格宽度不同?我是整行绘制的。