我试图在MFC视图类中显示一个简单的Unicode字符串。问题可以简化为以下代码
CString arabic (_T("مرحبا العالم"));
pDC->TextOutW (50, 50, arabic);
问题是MFC窗口显示的是条形而不是阿拉伯字符,如下面的屏幕截图所示。有人能说出我做错了吗?
如果重要的话,我正在使用VS 2003.
编辑:当我在设备上下文中选择了一个字体对象时,应用程序的行为会发生变化,但仍然不正确;它显示以下字符,就好像我使用了错误的代码页:
答案 0 :(得分:2)
这意味着所选字体没有可用的字符。
您必须在设备上下文中选择包含所需字形的字体。
这样的事情可能是:
CFont font;
font->CreateFont(16,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY,DEFAULT_PITCH|FF_SWISS,
"Tahoma");
pDC->SelectObject(font);