在MFC视图中显示阿拉伯语/ Unicode

时间:2012-01-05 12:59:02

标签: unicode mfc

我试图在MFC视图类中显示一个简单的Unicode字符串。问题可以简化为以下代码

CString arabic (_T("مرحبا العالم"));
pDC->TextOutW (50, 50, arabic);

问题是MFC窗口显示的是条形而不是阿拉伯字符,如下面的屏幕截图所示。有人能说出我做错了吗?

First attempt to display Arabic

如果重要的话,我正在使用VS 2003.

编辑:当我在设备上下文中选择了一个字体对象时,应用程序的行为会发生变化,但仍然不正确;它显示以下字符,就好像我使用了错误的代码页:

enter image description here

1 个答案:

答案 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);