我正在尝试了解 DirectWrite API,这样我就可以获得一个灵活的解决方案来解决从任何文化中呈现文本的问题,并可能使用它将富文本编辑合并到应用程序中,并且比“固定”方式具有更多的控制权编辑/显示文本。
PadWrite示例看起来很棒,并展示了 API 的精心设计——这是 Microsoft 自己的屏幕截图:
示例文本包括以“混合脚本”开头的行:在源代码中,所有示例文本都由单个 C++wchar_t[]
文字指定,并且混合脚本都在 Visual Studio 2012 的代码编辑器中正确显示。如果我将它们复制并粘贴到普通的 Windows 写字板中,它们也会正确显示。并且阿拉伯语从右到左部分在这两个编辑器中都有正确的插入符号导航行为。
但是当我实际运行 PadWrite 示例时,这些都不起作用。相反,我看到了这个:
它几乎看起来像是被转换为 UTF-8 然后被误解了(这没有意义,因为这一切都是用 . 完成的wchar_t
。)
我正在运行 Windows 8.1。我需要做什么才能使 PadWrite 与 WordPad 或 Visual Studio 2012 一样好用?它是来自从未更新过的 API 预发布版本的失效样本吗?
注意。第一个警告信号是 PadWrite 一开始甚至没有编译 - 在文件中EditableLayout.cpp
,TextEditor.cpp
我不得不在#include
语句之后添加:
#undef max
#undef min